|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求教,在一个list中,想找到连续2次或3次或4次(连续出现次数可根据输入值变化)True的位置。
例如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))
复制代码
|
|