Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-检查列表中是否存在所有n个数字_Python_Python 3.x - Fatal编程技术网

Python-检查列表中是否存在所有n个数字

Python-检查列表中是否存在所有n个数字,python,python-3.x,Python,Python 3.x,我想检查我的列表是否包含从0到列表最大值的所有数字 对于ex,此列表包含从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的

我想检查我的列表是否包含从0到列表最大值的所有数字

对于ex,此列表包含从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

缓慢而肮脏的孤独:

def f(myList):
    ll = [i for i in range(max(myList))] 
    diff = set(ll).difference(set(myList))
    if diff: return (False, diff)
    return (True, "sequence without blanks")

#lets test:
t1,t2 = [0,1,7,4,5,2],[3,5,4,2,1,0]
print(map(f,(t1,t2)))

和往常一样,布景是我最喜欢的

原始列表

l = [ 1, 2,4 3, 0, 5,6,7]
另一个比较列表

l2 = range(8)

# intersection of two sets is the set of compare list. 
# This solution would work when the size of original list is different than size of the compare list
set(l) & set(l2) == set(l2) 
您可以尝试测试集:

len(set(l))==max(l)+1

这不管用。。。我想检查从0到n的所有数字是否都存在,n是列表中的最大数字。对于ex-如果列表中的最大数字为5,则无论顺序如何,都应显示0,1,2,3,4,5。@为什么?你说的是从0到列表最大数的所有数字,这就是你想要的。虽然在原始问题中没有提到-我担心这个解决方案不会起作用-如果原始列表有重复项并且比比较列表有更多的元素。例如,
l=[0,1,2,4,5,6,8,2,7,2,4,5]
(不包含3,2,4,5是重复的)。但是同意,在最初的问题中没有提到两个列表是否大小相同。@Gabijit这是另一种情况,可以通过
set