如何将嵌套列表拆分为按每两个元素分组的多层嵌套列表?
嵌套列表按每两个元素分组的实现方法
首先修正你给出的目标结果,正确的格式应该是:
Nested_list = [[[a, b], [c, d]], [[e, f], [g, h]], [[i, j], [k, l]]]
方法一:列表推导式(简洁高效)
直接通过嵌套列表推导式完成分组,核心是对每个子列表按步长2截取元素:
mylist = [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l']] nested_list = [[sublist[i:i+2] for i in range(0, len(sublist), 2)] for sublist in mylist] print(nested_list)
运行结果:
[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']], [['i', 'j'], ['k', 'l']]]
方法二:for循环实现(分步清晰)
如果你想用for循环完成,需要遍历每个子列表,再对每个子列表按步长2拆分后添加到新列表中:
mylist = [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l']] nested_list = [] for sublist in mylist: grouped = [] # 按步长2遍历子列表的索引 for i in range(0, len(sublist), 2): grouped.append(sublist[i:i+2]) nested_list.append(grouped) print(nested_list)
这段代码和列表推导式逻辑一致,只是用显式循环实现,更容易理解每一步操作。你之前用for循环无效,大概率是没正确处理内层分组的追加逻辑——比如忘记为每个子列表创建新的分组列表,或者索引步长设置错误。
内容的提问来源于stack exchange,提问作者user20266627
相关产品推荐
相关产品推荐

