首页 > 解决方案 > 列表中满足给定条件的连续元素的计数

问题描述

我有一个整数列表,例如下面的列表:

list1 = [[1,2,3],[1,2,5,6,8],[2,4,6,9,7],[1,3],[2,4,3,6,8,2]]

我想获得每个子列表中连续偶数的最大长度作为输出,输出列表是:

  olist = [1,2,3,0,3]

这是我的代码:

olist=[]
for ii in list1:
    if all(item % 2 == 0 for item in ii):
        olist.append(len(ii))
print (olist)

但是这段代码是错误的。

标签: pythonlist

解决方案


让我们保持简单。您将需要两个循环。您还需要一个计数器来跟踪当前计数。为简单起见,您可以tr跟踪最大计数。

tr = [0] * len(lst)
for i, l in enumerate(lst):
    counter = 0
    for v in l:
        if v % 2 == 0:
            counter += 1
        else:
            tr[i] = max(counter, tr[i])
            counter = 0
    tr[i] = max(counter, tr[i])

print(tr)
# [1, 2, 3, 0, 3]

推荐阅读