如何保存任意规模嵌套列表至文件并提取子列表首元素?
问题解答
一、嵌套列表的保存与还原
Python提供了两种简便方法实现任意规模嵌套列表的保存与还原:
方法1:使用pickle模块(支持所有Python对象)
pickle是Python专属的序列化工具,能完整保留嵌套列表的结构,甚至支持保存自定义类实例等特殊对象。
import pickle # 保存嵌套列表 List_lists = [["a",1,2,3,4],["b",1,2,3,4],["c",1,2,3,4]] with open("nested_list.pkl", "wb") as f: pickle.dump(List_lists, f) # 从文件还原列表 with open("nested_list.pkl", "rb") as f: restored_list = pickle.load(f) print(restored_list) # 输出原嵌套列表结构
方法2:使用json模块(通用可读格式)
如果列表元素都是JSON支持的类型(字符串、数字、普通列表/字典等),json生成的文件是可读的文本格式,兼容性更强。
import json # 保存嵌套列表 with open("nested_list.json", "w", encoding="utf-8") as f: json.dump(List_lists, f, ensure_ascii=False) # 从文件还原列表 with open("nested_list.json", "r", encoding="utf-8") as f: restored_list = json.load(f) print(restored_list)
二、提取子列表首个元素生成新列表
用列表推导式可以快速实现,根据需求生成不同结构的结果:
生成普通列表
List_lists = [["a",1,2,3,4],["b",1,2,3,4],["c",1,2,3,4]] first_column = [sublist[0] for sublist in List_lists] print(first_column) # 输出: ['a', 'b', 'c']
生成嵌套列表(匹配示例格式)
first_column = [[sublist[0] for sublist in List_lists]] print(first_column) # 输出: [['a', 'b', 'c']]
内容的提问来源于stack exchange,提问作者Nicolas Cesarini
相关产品推荐
相关产品推荐

