我试图弄清楚如何比较 n 个列表以找到共同元素。
例如:
p=[ [1,2,3],
[1,9,9],
..
..
[1,2,4]
>> print common(p)
>> [1]
现在,如果我知道元素的数量,我可以进行如下比较:
for a in b:
for c in d:
for x in y:
...
但如果我不知道 p 有多少个元素,那就行不通。我看过这个比较两个列表的解决方案https://stackoverflow.com/a/1388864/1320800 https://stackoverflow.com/a/1388864/1320800
但在花了 4 个小时试图找出一种递归方法之后,我仍然找不到解决方案,因此我们将非常感谢任何帮助!
您正在寻找所有子列表的集合交集,并且您应该用于集合操作的数据类型是集合:
result = set(p[0])
for s in p[1:]:
result.intersection_update(s)
print result
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)