【发布时间】:2019-04-04 20:20:04
【问题描述】:
是否有可能以比我所做的更简洁(又名更短)的方式比较包含未知数量列表和相同元素的列表?最好是单线!
如果不清楚我想做什么,这里是一个例子:
a = [1, 2, 3]
b = [4, 2, 1]
c = [7, 5, 1]
d = [a, b, c]
def multiCompList(lists):
final = [i for i in lists[0] if i in lists[1]]
for i in range(2, len(lists)):
final = [i for i in final if i in lists[i]]
return final
print(multiCompList(d))
我所做的是首先检查第一个和第二个列表是否包含任何相等的元素,并将它们放入一个名为 final 的列表中。此后,检查是否可以在之后的列表中找到这些元素,并用剩余的相等元素替换最终列表。 这种情况下的结果是:[1]。
【问题讨论】:
-
你想找到所有列表的交集吗?顺序重要吗?
-
@Chris_Rands 不,我猜前两个列表的交集和第三到第 n 个列表的交集。所以不仅仅是所有列表的交集
-
也许你可以在这里应用你的学习stackoverflow.com/questions/3852780/…
-
你的示例和解释是切线的。你想从所有列表中获取共同值吗?
-
谢谢@RahulChawla。正是我想要的!