我有n个数字 list 。我要确保每个列表都包含该特定列表的唯一元素。 IE。其余任何一个都没有“共享”重复项。
使用两个列表确实很容易做到,但是使用n个列表则有点棘手。
e.g.
mylist = [
[1, 2, 3, 4],
[2, 5, 6, 7],
[4, 2, 8, 9]
]
变成:
mylist = [
[1, 3],
[5, 6, 7],
[8, 9]
]
最佳答案
from collections import Counter
from itertools import chain
mylist = [
[1,2,3,4],
[2,5,6,7,7],
[4,2,8,9]
]
counts = Counter(chain(*map(set,mylist)))
[[i for i in sublist if counts[i]==1] for sublist in mylist]
#[[1, 3], [5, 6, 7, 7], [8, 9]]