gpt4 book ai didi

python - 在列表中查找连续的 'True' boolean 值

转载 作者:行者123 更新时间:2023-12-01 00:17:20 27 4
gpt4 key购买 nike

list=[False, True,True,False,False,True, True]

在该列表中,我想找到 True 的起始位置以及它们的数量,以便列表应返回:[[1,2], [6,2]]

我想在没有像 numpy 这样特殊的东西的情况下做到这一点。这是我到目前为止所拥有的,但没有任何效果

list=[False, True,True,False,False,True, True]
counter=0
consecutive_index=[]


for position in range(len(lists)-1):
if list[position]==True:
counter=counter+1
if not list[position+1]==True:
index=[position-counter+1, counter]
consecutive_index.append(index)



print(consecutive_index)

最佳答案

你认为什么特别?这会将 boolean 值列表转换为 X 和 Os 的字符串,然后使用 re.finditer 查找 X 或 True 的范围:

import re
import operator

x = [False, True,True,False,False,True, True]
s = ''.join('X' if p else 'O' for p in x)
list([m.span()[0], abs(operator.sub(*m.span()))] for m in re.finditer('X+', s))

这是另一个使用 enumerateitertools.groupby:

import itertools

list((g[0][0], len(g))
for key, group in itertools.groupby(enumerate(x), key=lambda v: v[1])
if key
for g in (list(group),))

关于python - 在列表中查找连续的 'True' boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59236607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com