如何区分列表列表中的每个元素?
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]]
如果这个答案对您有帮助,请投票并接受解决方案。
我正在尝试编写一个 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]]
如果这个答案对您有帮助,请投票并接受解决方案。