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的元素都不在列表中.
谢谢!
当我读到你的问题时,我从中得到了与马克不同的含义.如果要检查特定元素是否只出现一次,那么
def occurs_once(a, item):
return a.count(item) == 1
Run Code Online (Sandbox Code Playgroud)
只有item在列表中恰好出现一次才会成立.
请参阅第二个问题的Pokes答案
对于第一个问题,如果您的元素是可以清除的,您可以创建一个包含元素的集合并检查其长度:
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)
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)
第二。