使用Python在列表列表中查找类似的项目

时间:2014-07-25 02:13:46

标签: python

我尝试执行与此link类似的操作,但使用列表列表。但是,执行以下操作会给我一个TypeError。

list1 = [[a,a], [b,b], [c,c]]
list2 = [[c,c], [d,d], [e,e]]

same = set(list1) & set(list2)

我也试图找到:

different = not set(list1) & set(list2)

2 个答案:

答案 0 :(得分:0)

列表不是可清除类型,因此它们不能放入集合,但元组可以。您可以使用tuple(mylist)将列表转换为元组。以下代码假定a,b,c,d和e是可散列类型。

list1 = [(a,a), (b,b), (c,c)]
list2 = [(c,c), (d,d), (e,e)]

same = set(list1) & set(list2)

答案 1 :(得分:0)

如果您只是使用列表理解,它会更具可读性和更易理解。

def seperate(*ls):
   sim, diff = []
   for l in ls:
       sim.extend([ x for x in l if x not in sim ])
       diff.extend([ x for x in l if x not in sim ])
   return sim, diff