如何在python中检查元素是否只出现在列表中一次?

Bob*_*Bob 5 python iteration list

我有一个清单:

a = [1, 2, 6, 4, 3, 5, 7]
Run Code Online (Sandbox Code Playgroud)

请向我解释如何检查元素是否只出现在列表中一次?

请解释是否所有来自1的元素len(a)都在列表中.例如,在列表'a'中,1到7的元素在列表中,但如果列表是b = [1, 4, 3, 5],则不是所有1到4的元素都不在列表中.

谢谢!

aar*_*ing 6

当我读到你的问题时,我从中得到了与马克不同的含义.如果要检查特定元素是否只出现一次,那么

def occurs_once(a, item):
    return a.count(item) == 1
Run Code Online (Sandbox Code Playgroud)

只有item在列表中恰好出现一次才会成立.

请参阅第二个问题的Pokes答案


Mar*_*ers 5

对于第一个问题,如果您的元素是可以清除的,您可以创建一个包含元素的集合并检查其长度:

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

或者,您可以使用此函数,如果结果为False,则可以提供比上述更好的性能(但是当结果为True时性能更差):

def are_all_elements_unique(l):
    seen = set()
    for x in l:
        if x in seen:
            return False
        seen.add(x)
    return True
Run Code Online (Sandbox Code Playgroud)


pok*_*oke 5

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

对于第一个问题,并且

( len( set( a ) ) == len( a ) == max( a ) ) and min( a ) == 1
Run Code Online (Sandbox Code Playgroud)

第二。