假设我有一个全部相同的元素列表列表(在此示例中我将使用 int
)
[range(100)[::4], range(100)[::3], range(100)[::2], range(100)[::1]]
什么是获取这些列表的交集的好方法和/或有效的方法(这样你就可以得到每个列表中的每个元素)? 例如:
[0, 12, 24, 36, 48, 60, 72, 84, 96]
最佳答案
使用集合,集合有交集方法。
>>> s = set()
>>> s.add(4)
>>> s.add(5)
>>> s
set([4, 5])
>>> t = set([2, 4, 9])
>>> s.intersection(t)
set([4])
以你的例子为例,类似
>>> data = [range(100)[::4], range(100)[::3], range(100)[::2], range(100)[::1]]
>>> sets = map(set, data)
>>> print set.intersection(*sets)
set([0, 96, 36, 72, 12, 48, 84, 24, 60])
关于python - 在python中取任意数量列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893500/