如何在Python中将多个字典的值转换为嵌套列表?
在Python中将字典集合转换为嵌套列表
核心解法
要实现将多个字典的集合(注:Python中集合无法包含字典,实际应为列表类型)转换为对应值的嵌套列表,分两种场景处理:
场景1:所有字典键顺序固定(Python 3.7+)
从Python 3.7开始,字典会保持键的插入顺序。如果你的所有输入字典的键顺序一致(比如都是x→y→z),直接提取每个字典的values()并转为列表即可:
# 输入(正确格式应为列表) my_dict_list = [{'x':112,'y':987,'z':56}, {'x':12,'y':97,'z':516}, {'x':1912,'y':7,'z':26}] # 转换为嵌套列表 my_list = [list(d.values()) for d in my_dict_list] print(my_list) # 输出: [[112, 987, 56], [12, 97, 516], [1912, 7, 26]]
场景2:需要严格按指定键顺序取值
如果需要忽略字典内部的键顺序,强制按x、y、z的顺序提取值,可以显式指定键列表来生成子列表:
my_dict_list = [{'x':112,'y':987,'z':56}, {'x':12,'y':97,'z':516}, {'x':1912,'y':7,'z':26}] target_keys = ['x', 'y', 'z'] # 按指定键顺序生成嵌套列表 my_list = [[d[key] for key in target_keys] for d in my_dict_list] print(my_list) # 输出同样符合需求
注意事项
- 你提供的输入示例
My_dict={{...}, {...}}在Python中不合法,因为集合不能包含可变类型(字典是可变的),实际开发中请使用列表存储多个字典。 - 如果你的Python版本低于3.7,字典不保证键的顺序,此时必须使用场景2的显式指定键顺序的方法,避免取值顺序混乱。
内容的提问来源于stack exchange,提问作者Beyond
相关产品推荐
相关产品推荐

