如何按每5个元素遍历数字列表 生成包含整数和元组的嵌套列表
实现方案
你可以用Python的列表切片+步长遍历的方式实现,代码简洁高效,具体实现如下:
完整代码示例
# 原始列表 raw_list = ['20','15','45','76','0','67','45','485','16','8'] result = [] # 按步长为5遍历索引,每次取5个元素为一组 for start_idx in range(0, len(raw_list), 5): # 切片截取当前分组的5个元素 current_group = raw_list[start_idx:start_idx+5] # 按要求处理分组:前两个元素直接保留,后三个转元组 processed_group = [current_group[0], current_group[1], tuple(current_group[2:])] result.append(processed_group) print(result)
运行后输出结果和你要求的完全一致:[['20','15',('45','76','0')],['67','45',('485','16','8')]]
核心逻辑说明
- 用
range(0, len(raw_list), 5)生成起始索引序列,步长设为5就能保证每次遍历的起始位置刚好间隔5个元素,实现按5个元素一组拆分 - 列表切片
raw_list[start_idx:start_idx+5]会自动处理边界情况,就算列表总长度不是5的整数倍,也不会抛出索引溢出错误,只会返回剩余的有效元素 - 对每个拆分后的分组直接按索引取值即可,
current_group[2:]会自动取索引2及之后的所有元素,转成元组后拼入子列表即可
如果你更喜欢精简写法,也可以用列表推导式实现:
raw_list = ['20','15','45','76','0','67','45','485','16','8'] result = [[g[0], g[1], tuple(g[2:])] for i in range(0, len(raw_list), 5) for g in [raw_list[i:i+5]]]
内容的提问来源于stack exchange,提问作者dav00
相关产品推荐
相关产品推荐

