4 回答
TA贡献1808条经验 获得超4个赞
一个非常简单的方法是将列表连接成一个字符串,并检查是否存在,如下所示:1...
l_true = [0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0 ] #should return True
l_false = [0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0 ] #should return False
check = lambda x: '1'*7 in ''.join(str(num) for num in x)
print(check(l_true))
>>> True
print(check(l_false))
>>> False
TA贡献1817条经验 获得超14个赞
您可以检查 7 个元素的任何子列表是否与 7 个元素的列表(共 1 个元素)匹配:
def f(l):
pat = [1] * 7
for i in range(len(l)-7):
if l[i: i+7] == pat:
return True
return False
在以下单行代码中具有相同的想法:
[1] * 7 in (l[i:i+7] for i in range(len(l) - 7))
TA贡献1818条经验 获得超8个赞
就是这么简单:
alist = [0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0]
def is_sequence_exist(alist, count, item):
_count = 0
for elem in alist:
if elem == item:
_count += 1
if _count == count:
return True
else:
_count = 0
return False
print(is_sequence_exist(alist, 2, 1))
TA贡献1765条经验 获得超5个赞
这是使用 的一种方法。itertools.groupby
前任:
from itertools import groupby
data = [[0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0]]
for i in data:
if any((k==1 and len(list(v)) >=7) for k, v in groupby(i) ):
print("Ok", i)
添加回答
举报