| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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))
 
 
  复制代码 
 
 
 |   
 
 
 
 |