【发布时间】:2019-12-13 05:08:13
【问题描述】:
所以我想要一个列表,其中的元素在遍历时根据特定的元组值添加和替换。
我尝试了一些基本逻辑来删除前一个元素,以便用新元素“替换”它,但是旧元素似乎没有被删除。
a = [['a','1','f'],['a','2','f'],['a','3','t'],['b','4','f'],['b','5','t'],['c','6','f']]
z = []
z.append(a[0])
for i in range(1, len(a)):
if str(a[i]).split(',')[2] == 't' and str(a[i]).split(',')[0] == str(a[i-1]).split(',')[0]:
del z[i]
z.append(a[i])
elif a[i] not in z:
z.append(a[i])
所以这里我有一个列表“a”,列表中有一些元组值。一些值 (a,b,c) 可能重复,并具有相应的值(f 或 t)。我想要的是将这些元组添加到'z'中,如果不存在的话,然后如果我找到一个存在并且具有相应值't'的元组,我会摆脱旧的并用它替换它。
所以z的最终输出应该是:
['a','3','t'], ['b','5','t'],['c','6','f']
我们遍历'a',看到['a','1','f']最初不在'z'中。我们添加它并继续遍历。然后我们看到第3个元素有['a','3','t'],所以我们用'f'删除原来的元素并用't'替换。我们也对“b”这样做,而对于“c”,没有与之对应的“t”值,所以我们保留它。
感谢您的帮助。
【问题讨论】:
标签: python list replace tuples