|  | 
 
| 
求教,在一个list中,想找到连续2次或3次或4次(连续出现次数可根据输入值变化)True的位置。
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  例如a = [False, True, True, True, False, True, True, True, True, False] 。这个list的答案应该是[[1, 3],[5,4]]。
 或者[False] * 3。答案应该是[]。
 再或者[True, True, False, False, True, True, True, True, True, False, False, True, True] 。答案应该是[[0, 2],[4,5],[11,2]]。
 该怎样编写?
 
 本帖最后由 qq1151985918 于 2021-6-28 09:13 编辑 
复制代码def fun(data: list) -> list:
    results, result = [], [None, 0]
    for i in range(len(data)):
        if data[i]:
            if result[0] is None:
                result[0] = i
                result[-1] += 1
            else:
                result[-1] += 1
        else:
            if result[0] is not None and result[-1] >= 2:
                results.append(result)
            result = [None, 0]
    else:
        if result[0] is not None and result[-1] >= 2:
            results.append(result)
    return results
if __name__ == "__main__":
    a = [True, True, False, False, True, True, True, True, True, False, False, True, True]
    print(fun(a))
 | 
 |