在Python中查找(并保留)子列表的重复项
我有一个包含数字的列表,这个列表里面还有其他的子列表。我只想保留那些在所有子列表中都存在的数字。
举个例子:
x = [ [1, 2, 3, 4], [3, 4, 6, 7], [2, 3, 4, 6, 7]]
output => [3, 4]
我该怎么做呢?
4 个回答
2
在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够清晰,或者是我们对某些概念理解得不够透彻。比如,有人可能在使用某个函数时,不知道它具体是怎么工作的,或者为什么会出现错误。这种情况下,查阅相关的资料或者在论坛上提问就显得很重要。
在StackOverflow上,很多人会分享他们的经验和解决方案,帮助其他人解决类似的问题。你可以看到很多技术细节和代码示例,这些都是为了让大家更好地理解如何编程和调试。
总之,遇到问题时,不要害怕寻求帮助,社区里有很多热心的人愿意分享他们的知识和经验。
def f(a, b):
return list(set(a).intersection(set(b)))
reduce(f, x)
7
一句话总结:
>>> reduce(set.intersection, x[1:], set(x[0]))
set([3, 4])
9
common = set(x[0])
for l in x[1:]:
common &= set(l)
print list(common)
或者:
import operator
print reduce(operator.iand, map(set, x))