Python如何匹配字典键与字典列表type字段获取对应值生成新字典
实现方案
给定数据
两个基础数据结构如下(注意原字典中"A":"A Name"行末尾缺失逗号,运行前需要补全避免语法错误):
my_ls = [{"type": "A", "value": "100"}, {"type": "B", "value": "200"}, {"type": "C", "value": "300"}, {"type": "D", "value": "700"}] my_dict = { "A": "A Name", "B": "B Name", "C": "C Name", "D": "D Name" }
匹配规则
遍历列表中的字典元素,当元素的type字段值和my_dict的键匹配时,取my_dict中该键对应的展示名称作为新字典的键,取列表元素中对应的value字段(可按需拼接说明文本)作为新字典的值。
代码实现
基础遍历写法(可读性高,适合新手)
new_dict = {} for item in my_ls: type_code = item["type"] # 增加判断避免my_dict中不存在对应type时抛出KeyError if type_code in my_dict: # 不需要示例里的说明前缀时,直接赋值item["value"]即可 new_dict[my_dict[type_code]] = f"Type {type_code} value from list i.e {item['value']}"
字典推导式写法(简洁高效)
new_dict = { my_dict[item["type"]]: f"Type {item['type']} value from list i.e {item['value']}" for item in my_ls if item["type"] in my_dict }
运行结果
两种写法最终输出的新字典完全符合预期:
{ "A Name": "Type A value from list i.e 100", "B Name": "Type B value from list i.e 200", "C Name": "Type C value from list i.e 300", "D Name": "Type D value from list i.e 700" }
内容的提问来源于stack exchange,提问作者D_P
相关产品推荐
相关产品推荐

