Python:如何将列表的列表的元组转换为列表的列表的列表?
解决嵌套元组转列表的问题
你的问题出在列表推导式只遍历了外层的子列表,没有深入处理子列表里的每个元组。原来的写法只是把每个子列表重新转成了列表,但里面的元素还是元组,自然达不到预期效果。
正确的写法需要两层嵌套的列表推导式,分别处理外层子列表和内层元组:
old_list = [[(0, 1), (0, 2)], [(8, 4), (3, 7)]] new_list = [[list(tup) for tup in sublist] for sublist in old_list]
运行这段代码后,new_list的结果就是你想要的:
>>> print(new_list) [[[0, 1], [0, 2]], [[8, 4], [3, 7]]]
简单解释下逻辑:
- 外层循环遍历
old_list中的每个子列表sublist - 内层循环遍历每个
sublist里的元组tup,用list(tup)把元组直接转换成列表 - 最后把这些转换后的列表按原嵌套结构组合起来
内容的提问来源于stack exchange,提问作者ToErotimatiko
相关产品推荐
相关产品推荐

