我的功能目前正在返回:

[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'e', 'f'), ('h', 'b', 'c')]

但是,我需要最终输出为:
[('a', 'h'), ('d', 'g')]

如您所见,如果 i[1] 和 i[2] 匹配,我需要将 i[0] 配对在一起。

我正在尝试使用 for 循环,但此时我想不出如何编写它。

最佳答案

这似乎有效:

from itertools import combinations

l = [('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'e', 'f'), ('h', 'b', 'c')]
print([(a[0], b[0]) for a, b in combinations(l, 2) if a[1:] == b[1:]])

关于python - 如何根据原始元组列表中的值创建新的元组列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31861520/

10-11 06:22