微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在尝试编写一个 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 举报,一经查实,本站将立刻删除。