Python 检查一组值是否在给定数组中

Python 检查一组值是否在给定数组中,python,Python,我想检查“check”中的所有数字是否都在给定的数组“list”中,如下所示: import sys lists = [1,2,8,8,8,8,8,8,8,8,8,8] check = [1,2,3] for check in lists: print True sys.exit() print False 但是,除非我将列表设置为[],否则它始终打印为True。有人知道这是怎么回事吗?提前谢谢 它会一直打印True,因为您正在循环内部打印True,如果列表是[],它无法迭代,

我想检查“check”中的所有数字是否都在给定的数组“list”中,如下所示:

import sys
lists = [1,2,8,8,8,8,8,8,8,8,8,8]
check = [1,2,3]
for check in lists:
    print True
    sys.exit()
print False

但是,除非我将列表设置为[],否则它始终打印为True。有人知道这是怎么回事吗?提前谢谢

它会一直打印
True
,因为您正在循环内部打印
True
,如果列表是
[]
,它无法迭代,因为它是空的,所以请尝试:

print(all(i in lists for i in check))
所以整个代码是:

lists = [1,2,8,8,8,8,8,8,8,8,8,8]
check=[1,2,3]
print(all(i in lists for i in check))
更新:

print(all(i in lists for i in check) and [lists.index(i) for i in check]==range([lists.index(i) for i in check][0],[lists.index(i) for i in check][-1]+1))
更新工作

s = [True if lists[idx: idx+3] == check else False for idx, item in enumerate(lists[:-2])]
if any(s):
    print(True)
else:
    print(False)

即使[1,2,3]在“list”数组中被分隔,它仍然打印“True”。好主意@Stick1000什么,真的,它为我返回
False
,你能再试一次吗?呵呵,快点@U9 Forward:)我用这个数组测试:[8,2,1,2,4,3,9,0]。它打印的是True。@Stick1000是否要按顺序打印?说明:顺序应该是[1,2,3],否则打印的是False。