我想检查我的列表是否包含从0到列表最大数的所有数字
例如,这个列表包含从 0 到 7 的所有数字:
l = [0,2,1,7,6,5,4,3]
但是这个列表没有,因为它没有 4 -
l = [0,2,1,6,5,7,3]
我尝试使用 zip:
all(x==y+1 for x, y in zip(sorted(l[1:]), sorted(l)))
但这行不通..
例如 -
l = [0,3,2,5]
没有 1 和 4 所以它应该返回 false!
在哪里 -
l = [0,2,3,1,4,5]
具有从 0 到 5 的所有数字,因此它应该返回 true!
最佳答案
不需要使用具有多个zip
功能的zip
。您可以使用sorted
:
if sorted(l)==list(range(max(l)+1))
例子:
>>> sorted(l)==list(range(max(l)+1))
False
>>> l= [0,2,1,7,6,5,4,3]
>>> sorted(l)==list(range(max(l)+1))
True
关于Python - 检查列表中是否存在所有 n 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691556/