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

Kri*_*chu 2 python tuples set 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))
Run Code Online (Sandbox Code Playgroud)

有什么想法错误?是否内置了元组?

ssh*_*124 8

你可以很容易地做到:

len(set(tup))==len(tup)
Run Code Online (Sandbox Code Playgroud)

这产生了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
Run Code Online (Sandbox Code Playgroud)