gpt4 book ai didi

python - 在多个列表中查找重复值

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

我正在尝试查找 list1 中的子列表是否有重复值,因此我需要知道 list1[0] 中的数字是否与 list[1] 中的数字相同(其中重复了 20 个)

数字代表坐标,列表 1 中每个项目的坐标不能重叠,如果它们重叠,那么我有一个模块重新运行一个新的列表 1,直到没有坐标是 smae

请帮忙

    list1 = [[7, 20], [20, 31, 32], [66, 67, 68],[7, 8, 9, 2],
[83, 84, 20, 86, 87], [144, 145, 146, 147, 148, 149]]

x=0
while x != 169:
if list1.count(x) > 0:
print ("repeat found")
else:
print ("no repeat found")
x+=1

最佳答案

怎么样:

is_dup = sum(1 for l in list1 if len(set(l)) < len(l))
if is_dup > 0:
print ("repeat found")
else:
print ("no repeat found")

另一个使用 any 的例子:

any(len(set(l)) < len(l) for l in list1)

为了检查所有列表中是否只有一项重复,我会将它们链接起来并检查。感谢this answer用于展平列表列表。

flattened = sum(list1, [])
if len(flattened) > len(set(flattened)):
print ("dups")
else:
print ("no dups")

我想扁平化列表的正确方法是使用 itertools.chain可以这样使用:

flattened = list(itertools.chain(*list1))

这可以替换我上面使用的 sum 调用,如果这看起来像是 hack。

关于python - 在多个列表中查找重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004469/

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