我有n个数字列表.我想确保每个列表包含该特定列表的唯一元素.即其余任何一个都没有"共享"重复.
这对于两个列表来说非常容易,但是对于n个列表来说有点棘手.
e.g.
mylist = [
[1, 2, 3, 4],
[2, 5, 6, 7],
[4, 2, 8, 9]
]
Run Code Online (Sandbox Code Playgroud)
变为:
mylist = [
[1, 3],
[5, 6, 7],
[8, 9]
]
Run Code Online (Sandbox Code Playgroud)
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]]
Run Code Online (Sandbox Code Playgroud)