我有一个真与假的清单,每当我有3个重复的真时,我都要数一数。
my_list=[True, True, True, True,False, True, True,False]
输出:由于前3个元素为真,第二到第四个元素也为真,因此输出为2。
count=2
我做了以下操作,但是如果我愿意,我正在寻找一种更好的方法来改变3。
count=0
for j in my_list:
if my_list[j]==True and my_list[j+1]==True and my_list[j+2]==True:
count=count+1
7条答案
按热度按时间dphi5xsq1#
可以将列表切片与
all
.这也可以使用
sum
(如马克·勒森所言)。xam8gpfp2#
从索引0到len(my_list)-2,您只需要一个for循环,然后对于每个迭代,从当前索引开始查找3个连续元素的总和(在python中为true=1和false=0)。
对于任何n:
o3imoua43#
你可以用
groupby
对于每组,得到长度,减去2,相加count
.jljoyd4f4#
添加一行,变化不大(列表理解)。
信用证:未缓和
xxls0lw85#
5jdjgkvh6#
下面介绍如何使用带有状态变量的老式循环:
这是基于albert_编码的答案,但它们的实现不起作用。
vaqhlq817#