我有一个列表,如下所示。我想迭代列表,对于索引1中的每个“是”列表项,我想在得到另一个“是”之前,用“否”的出现次数更新索引2,然后向其中添加1。我不知道如何在遇到另一个“是”时在一个范围内迭代一段时间以停止
我已经简化了下面的问题和答案中的数据,但是下面是我对对象使用的代码,以尝试和完成
问题
fullchart = [
[1, 'yes', 0],
[2, 'no', 0],
[3, 'no', 0],
[4, 'yes', 0],
[5, 'no', 0],
[6, 'no', 0],
[7, 'yes', 0],
[8, 'no', 0],
[9, 'yes', 0]
]
预期产量
[
[1, 'yes', 3],
[2, 'no', 0],
[3, 'no', 0],
[4, 'yes', 3],
[5, 'no', 0],
[6, 'no', 0],
[7, 'yes', 2],
[8, 'no', 0],
[9, 'yes', 1]
]
代码
end_page = 0
for i in range(len(fullchart)):
end_page = 0
#pprint.pprint(fullchart[i][1])
if fullchart[i][1] == 'yes':
for b in range(i+1, len(fullchart)):
print(b)
if fullchart[i+1][1] == 'no':
end_page += 1
print('printing end_page')
print(end_page)
fullchart[i][3] == end_page
else:
pass
我想你要找的是
break
。一旦您找到下一个“是”,那么您希望捕获该值并打破嵌套for循环输出
您可以使用“是”来跟踪最后一个索引,并在适当的位置更新列表
输出
与其使用while语句,不如使用for循环,从最后一个循环遍历到第一个循环。这样你就可以计算每一个否定,直到你得到肯定
此解决方案只执行一次循环。您不需要嵌套循环。这是昂贵的和糟糕的编码
下面是执行此操作的代码:
其输出将为:
查看与所需结果相似的数据的格式化方式为:
相关问题 更多 >
编程相关推荐