python - 列表中满足给定条件的连续元素的计数
问题描述
我有一个整数列表,例如下面的列表:
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)
但是这段代码是错误的。
解决方案
让我们保持简单。您将需要两个循环。您还需要一个计数器来跟踪当前计数。为简单起见,您可以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]
推荐阅读
- jquery - Angular 7 cli应用程序中的JQuery datepicker不起作用
- c# - 从 ajax 控制器接收到的数据为 NULL?
- python - pandas json_normalize 所有列都有嵌套字典展平
- css - 使用带有自定义 CSS 的表单构建器并需要帮助更改按钮对齐方式
- python - django - 我的表单不会保存添加的 M2M 对象。为什么?
- php - 如何制作基于工作日日历表的mysql考勤报告与员工考勤表连接
- html - 如何在边框中的链接之间添加间距
- python - 使用 DynamoDB 和 Lambda API 处理删除请求
- python - 如何在 BeautifulSoup 中使用 Python 仅打印这一行的日期?
- javascript - react-router - 从嵌套路由器导航到父路由