如何使用for循环将元组列表转换为嵌套列表?
如何用for循环将元组列表转换为嵌套列表?
嗨,我来帮你梳理下问题所在,以及正确的实现方式~
你之前的代码之所以得到[[1], [2], [3], [4], [5], [6], [7], [8], [9]]这种结果,核心原因是没有为每个元组单独创建对应的内层列表:你每次都把单个元素包装成列表后直接追加到同一个大列表里,自然就没法形成按元组分组的嵌套结构了。
正确的两层循环实现
我们需要为每个元组单独初始化一个内层列表,把元组里的元素都塞进去后,再把这个内层列表加到外层结果列表中:
some_tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] result = [] # 外层空列表,用来存最终的嵌套结构 for a_tuple in some_tuples: inner_list = [] # 每个元组对应一个新的内层列表 for x in a_tuple: inner_list.append(x) result.append(inner_list) print(result) # 输出: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
更简洁的替代方案
其实Python里的list()函数可以直接把元组转换成列表,所以我们可以省去内层循环,直接这样写:
some_tuples = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] result = [] for a_tuple in some_tuples: result.append(list(a_tuple)) print(result) # 同样得到目标结果
这个方法既简洁又高效,完全能达到和列表推导式一样的效果~
内容的提问来源于stack exchange,提问作者Kuangmin Li
相关产品推荐
相关产品推荐

