如何修正代码实现列表按每两个连续元素分组为嵌套列表?
修正列表分组代码的问题
需求:将列表["a", "b", "c", "d", "e", "f", "g"]转换为嵌套列表,每两个连续元素分为一个子列表;若剩余单个元素,则单独作为一个子列表,预期结果为[["a", "b"], ["c", "d"], ["e", "f"], ["g"]]。
你的代码问题出在额外添加的if处理块上——切片操作original_list[i:i+2]本身就完美适配你的需求:
- 当
i对应的位置有两个元素时,切片返回包含两个元素的子列表 - 当列表长度为奇数,最后一次循环时
i指向最后一个元素,i+2超出列表长度,切片会自动返回仅包含该单个元素的子列表
直接去掉多余的if逻辑即可得到正确结果:
original_list = ["a", "b", "c", "d", "e", "f", "g"] nested_list = [] for i in range(0, len(original_list), 2): sublist = original_list[i:i+2] nested_list.append(sublist) print(nested_list)
输出结果:[['a', 'b'], ['c', 'd'], ['e', 'f'], ['g']]
再测试["a", "b", "c"]的情况:
original_list = ["a", "b", "c"] nested_list = [] for i in range(0, len(original_list), 2): sublist = original_list[i:i+2] nested_list.append(sublist) print(nested_list)
输出结果:[['a', 'b'], ['c']],完全符合预期。
内容的提问来源于stack exchange,提问作者french_fries
相关产品推荐
相关产品推荐

