我正在尝试比较 3 个不同列表的位置和元素,如果同一位置至少有 2 个元素匹配,则将它们保存在新列表中。
例如:
a = [FF2, FF6, FC4]
b = [FB5, FB3, FC4]
c = [FF2, FB3, FM8]
Result = [FF2, FB3, FC4]
一开始,我使用以下代码来比较 2 个列表,并尝试通过在 for i1
之后添加一个额外的 for 循环,并在 if 中添加一个 or 来将其调整为 3 个列表,但出现了严重错误(输出值几乎是预期值的 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)
最佳答案
al = ['FF2', 'FF6', 'FC4']
bl = ['FB5', 'FB3', 'FC4']
cl = ['FF2', 'FB3', 'FM8']
res = []
for a,b,c in zip(al, bl, cl):
if a == b or b == c or c == a:
if a == b:
res.append(a)
elif b == c:
res.append(b)
elif c == a:
res.append(c)
print(res)
您可以同时迭代 3 个列表并附加到结果列表。使用zip()
关于python - 比较 3 个不同列表的位置和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60336256/