python - 比较 3 个不同列表的位置和元素

标签 python list for-loop list-comprehension

我正在尝试比较 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/

相关文章:

python - 通过 OCR 从 T 恤照片中提取代码

python - 关于 Google python 类日的解决方案的问题

javascript - XPages 中的列表功能

java - 打印列表中除最后一个值之外的所有值。

python - 使用 conda-build 进行依赖管理——如何摆脱冗余和重复?

python - 将列表与另一个嵌套列表(无序)进行比较并输出列表

javascript - 为什么这个 for 循环返回字符的索引而不是整个属性?

Java 打印带有组名称的 ArrayList 组

java - 增强型 For 循环

python - 实现具有与 `type` 不同签名的元类的正确方法是什么?