我使用的是python2.5.4。从这里:Python -Intersection of multiple lists?
我有这个:
def intersect(*d):
sets = iter(map(set, d))
result = sets.next()
for s in sets:
result = result.intersection(s)
return result
以下工作如预期:
^{2}$但是,我有一些东西看起来更像以下:
d=[ [1,2,3,4], [2,3,4], [3,4,5,6,7] ]
如果我这样称呼它:
intersect(d)
我得到:
TypeError: list objects are unhashable
如何将上面的d
转换为intersect()
可以接受的东西?在
下面是另一种实现方法:
或者
^{pr2}$这在2.5和以前的版本中也有效。在
您需要将列表的内容作为单独的参数传递:
否则,整个列表被用作一个集合。{{{1>用一个参数来表示的函数。在
马蒂恩的回答是正确的。我想用一种更简单有效的方式来补充:
示例:
^{pr2}$免责声明这是在Python2.7上测试的。我不知道2.5
相关问题 更多 >
编程相关推荐