python - 测试元组是否具有所有不同的元素

标签 python set tuples distinct ipython

我一直在寻找一种方法来测试一个元组是否具有所有不同的元素 - 也就是说,它是一个集合,并最终得到了这个快速而肮脏的解决方案。

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)

这将创建一个 settup 并检查它是否与原始 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/

相关文章:

python - Python中的循环范围

python - if A vs if A is not None :

python - 排名聚合: Merge local subrankings into global ranking

java - HashSet contains() 方法

python - 如何定义一组变量,以便程序响应列表中的任何项目被调用,python3

python - 从列表中有条件地选择元组

scala - Scala不变 map 与元组列表

python - 为什么我会收到不支持的操作数类型类型错误?

list - 在 Python 2.7.8 中将集合转换为列表

c# - Tuple(Of T) 有什么意义