gpt4 book ai didi

python - 检查元组中的两个元素是否具有相同的值

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

我有一个包含 100 个字符串值的元组(比方说)。现在,我想检查元组中的两个字符串元素是否相同?

我试着用嵌套循环做这样的事情:

def hasDuplicates(arr: tuple):
ctr = 0
# arr looks something like this & len(arr) == 100
# arr = ('abc', 'bcd', 'sdf', 'abc', 'pqr', ...)
for m in arr:
for n in arr:
if n == m:
ctr += 1
# while looping, len(arr) times every element
# will be compared with itself
if ctr > len(arr):
return True
return False

...这行得通,但我认为有更好的解决方法。谁能为此提供更好的解决方案? :)

最佳答案

如果我没理解错的话,你可以将你的元组转换成一个集合并检查它是否与原始元组具有相同的长度。

def has_duplicates(iterable):
l = list(iterable) # in case iterable is an iterator
return len(set(l)) != len(l)

演示:

>>> tup = ('abc', 'bcd', 'sdf', 'abc', 'pqr')
>>> has_duplicates(tup)
>>> True
>>> has_duplicates(range(100))
>>> False

不适用于无限迭代器:)

~编辑~

一个更通用的版本,它不必预先构建一个可能很长的listset:

def has_duplicates(iterable):
seen = set()
for x in iterable:
if x in seen:
return True
seen.add(x)
return False

当然,这两个版本都要求您的可迭代对象的元素是可哈希的。

关于python - 检查元组中的两个元素是否具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53130913/

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