如何区分列表列表中的每个元素?

How can I difference each element among list of list?

我正在尝试编写一个 python 代码,我有一个如下所示的列表列表: [[1],[1,2],[3,4],[3],[4,5,6],[2,5,7,8]] 我想使用每个元素来区分上面的元素,例如:第一个元素将与自身不同,第二个元素将与第一个元素不同,第三个元素将与第一个元素和第二个元素不同等。

first= list(set([1]).difference(set([1)))
second= list(set([1,2]).difference(set([1)))
third= list(set([3,4]).difference(set([1,2])).difference(set([1])))
Fourth= list(set([3]).difference(set([3,4])).difference(set([1,2])).difference(set([1])))

而“return”将[第一、第二、第三、第四......]

有人知道吗?谢谢

我对@OmarAflak 在评论中建议的实施方式进行了轻微更改。如果中间结果是一个空列表 [],重用中间结果将不起作用,为了克服这个问题,我有一个集合 prev 来跟踪到目前为止看到的所有元素。

def difference(seq):
    res = []
    prev = set(seq[0])
    for i in seq:
        res.append(list(set(i).difference(prev)))
        prev.update(i)
    return res

seq =  [[1],[1,2],[3,4],[3],[4,5,6],[2,5,7,8]]
res = difference(seq)
print(res)

seq =  [[1],[1,2],[3,4],[3],[4,5,6],[2,5,7,8], [1, 2, 18], [9]]
res = difference(seq)
print(res)

输出

[[], [2], [3, 4], [], [5, 6], [8, 7]]
[[], [2], [3, 4], [], [5, 6], [8, 7], [18], [9]]

如果这个答案对您有帮助,请投票并接受解决方案。