【发布时间】:2020-02-21 10:03:31
【问题描述】:
我正在尝试比较 3 个不同列表的位置和元素,然后将它们保存在一个新列表中,如果相同位置的至少 2 个元素匹配。
例如:
a = [FF2, FF6, FC4]
b = [FB5, FB3, FC4]
c = [FF2, FB3, FM8]
Result = [FF2, FB3, FC4]
一开始我使用下面的代码来比较 2 个列表,并尝试通过在 for i1 之后添加一个额外的 for 循环并在我的 if 中添加一个或来调整它以适应 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)
【问题讨论】:
标签: python list for-loop list-comprehension