我正在寻找一种方法来测试一个元组是否具有所有不同的元素 - 可以说,它是一个集合,最终得到了这个快速而肮脏的解决方案。
def distinct ( tup):
n=0
for t in tup:
for k in tup:
#print t,k,n
if (t == k ):
n = n+1
if ( n != len(tup)):
return False
else :
return True
print distinct((1,3,2,10))
print distinct((3,3,4,2,7))
有什么思维错误吗?元组上有内置函数吗?
最佳答案
你可以很容易地做到这一点:
len(set(tup))==len(tup)
这将创建 set
的 tup
并检查它是否与原始 tup
的长度相同。它们具有相同长度的唯一情况是 tup
中的所有元素都是唯一的例子
>>> a = (1,2,3)
>>> print len(set(a))==len(a)
True
>>> b = (1,2,2)
>>> print len(set(b))==len(b)
False
>>> c = (1,2,3,4,5,6,7,8,5)
>>> print len(set(c))==len(c)
False
关于python - 测试一个元组是否包含所有不同的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22891726/