如何解决如何区分列表列表中的每个元素?
我正在尝试编写一个 python 代码,我有一个列表,如下所示: [[1],[1,2],[3,4],[3],[4,5,6],[2,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])))
和“返回”将[第一,第二,第三,第四......]
有人知道吗?谢谢
解决方法
我在评论中略微更改了@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,7,8]]
res = difference(seq)
print(res)
seq = [[1],8],2,18],[9]]
res = difference(seq)
print(res)
输出
[[],[2],[],[5,[8,7]]
[[],7],[18],[9]]
如果这个答案对您有帮助,请投票并接受解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。