从元组中提取符合升序条件的子列表
提取元组中的连续非降序子列表
给定由代码 E=tuple([random.randint(0,10) for x in range(10)]) 生成的示例元组 (3,4,5,0,0,3,4,2,2,4),需要提取其中连续的非降序子列表(元素仅需满足后一个≥前一个,不允许对原元组排序),目标结果为 [[3,4,5],[0,0,3,4],[2,2,4]]。
实现代码
E = (3,4,5,0,0,3,4,2,2,4) result = [] if E: current_sublist = [E[0]] for num in E[1:]: if num >= current_sublist[-1]: current_sublist.append(num) else: result.append(current_sublist) current_sublist = [num] result.append(current_sublist) print(result)
代码说明
- 初始化结果列表与当前子列表,从元组首个元素开始构建第一个子列表。
- 遍历元组后续元素:
- 若当前元素≥当前子列表的最后一个元素,将其加入当前子列表(延续非降序序列)。
- 若不满足条件,说明当前非降序序列结束,将其存入结果列表并重置当前子列表。
- 遍历结束后,将最后一个未存入的非降序子列表加入结果。
运行代码后将直接输出目标结果:[[3,4,5],[0,0,3,4],[2,2,4]]。
内容的提问来源于stack exchange,提问作者BouhaaCode
相关产品推荐
相关产品推荐

