我有一个像
这样的嵌套列表L = [[0,1,2,5,6],[1,2,9,4],[3,8,5,5,5]]
我想删除所有重复的内容:
L2 = [[0,1,2,5,6],[9,4],[3,8]]
我找到的所有功能,平面列表或不删除子列表中的重复。
有你的想法吗?
答案 0 :(得分:3)
您可以使用set和list-comprehension执行此操作:
>>> seen = set()
>>> seen_add = seen.add
>>> [[x for x in lst if x not in seen and not seen_add(x)] for lst in L]
[[0, 1, 2, 5, 6], [9, 4], [3, 8]]
上述代码也可以写成:
>>> seen = set()
>>> out = []
>>> for lst in L:
temp = []
for x in lst:
if x not in seen:
temp.append(x)
seen.add(x)
out.append(temp)
...
>>> out
[[0, 1, 2, 5, 6], [9, 4], [3, 8]]