gpt4 book ai didi

python - 压缩结果元组中没有重复值

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:24 26 4
gpt4 key购买 nike

在使用 zip 时,是否有一种优雅的或 pythonic 的方式来排除包含重复值的条目?

举个例子:

>>> list1 = [0, 1]
>>> list2 = [0, 2]
>>> zip(list1, list2)
[(0, 0), (1, 2)]

我只想拥有第二个元素 [(1, 2)]。目前,我做

[x for x in zip(list1, list2) if len(set(x)) == len(x)]

但这感觉有点乏味。有更好的方法吗?


编辑:我如何将其扩展到有两个以上列表的一般情况?

>>> list1 = [0, 1]
>>> list2 = [0, 2]
>>> list3 = [0, 3]
>>> ...
>>> zip(list1, list2, list3, ...)

如果任何条目包含任何 重复值,则应将其丢弃(并非元组中的每个值都必须相等)。

最佳答案

怎么样

[(x,y) for (x,y) in zip(list1, list2) if x != y]

一般情况:

[x for x in zip(list1, list2, ... listn) if not all(z == x[0] for z in x[1:])]

这会找到每个元素都相等的重复项。如果只有一对需要相等才能算作重复,则可以使用问题中已经提到的 set 方法,前提是您具有可散列类型。如果您有不可散列的类型,识别重复项的(有趣的)问题之前已得到解答 here .

关于python - 压缩结果元组中没有重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com