我试图比较3个不同列表的位置和元素,然后将它们保存在一个新列表中,如果相同位置的元素中至少有2个匹配
例如:
a = [FF2, FF6, FC4]
b = [FB5, FB3, FC4]
c = [FF2, FB3, FM8]
Result = [FF2, FB3, FC4]
开始时,我使用下面的代码比较了2个列表,并尝试将其调整为3个列表,在for i1
之后添加了一个额外的for循环,还向if添加了一个or,但出现了可怕的错误(几乎是预期输出值的10倍)
for i, v in enumerate(a):
for i1, v1 in enumerate(b):
if (i==i1) & (v==v1):
Result.append(v)
这是我当前的方法,工作正常,但我不知道如何将匹配的值附加到我的Result
列表中
Result = list(x for x, (xa, xb, xc) in enumerate(zip(a, b, c))
if xa == xb or xb == xc or xa == xc)
你可以这样做
输出将是
您可以通过取消使用
enumerate()
而只使用zip
来避免出现的问题。然后,我们检查由zip
创建的每个元组中的每个唯一元素,并查看该元素的计数是否大于1。如果是这样的话,我们会将其添加到退货清单中。使用t.count()
解决了不整洁xa == xb or xb == xc or xa == xc
条件的需要&;使其易于扩展到n
列表代码:
输出:
您可以同时遍历3个列表&;附加到结果列表。使用
zip()
相关问题 更多 >
编程相关推荐