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)
添加回答
舉報