如何按'-'分割字典复合键并生成新的键值映射
复合键拆分的字典转换实现方法
需求说明:将原字典中包含'-'的复合键按'-'拆分为独立单词,每个拆分后的单词键都映射到原键对应的值,非复合键保持原映射关系,最终得到目标字典。
方法一:常规循环实现
通过遍历原字典的键值对,逐个处理每个键:
original_dict = {'coin-dollar': 'money', 'banana': 'fruit', 'carrot-pea-pepper': 'vegetable'} result_dict = {} # 遍历原字典的每一组键值对 for key, value in original_dict.items(): # 判断当前键是否为复合键 if '-' in key: # 拆分复合键为单个单词列表 sub_keys = key.split('-') # 将每个拆分后的单词作为新键,映射到原值 for sub_key in sub_keys: result_dict[sub_key] = value else: # 非复合键直接存入结果字典 result_dict[key] = value print(result_dict)
方法二:字典推导式简化实现
用Python的字典推导式可以更简洁地完成转换,逻辑和循环方法一致:
original_dict = {'coin-dollar': 'money', 'banana': 'fruit', 'carrot-pea-pepper': 'vegetable'} result_dict = { sub_key: value for key, value in original_dict.items() # 对每个键,要么拆分后遍历,要么直接取原键 for sub_key in (key.split('-') if '-' in key else [key]) } print(result_dict)
两种方法执行后都会输出目标字典:
{'coin': 'money', 'dollar': 'money', 'banana': 'fruit', 'carrot': 'vegetable', 'pea': 'vegetable', 'pepper': 'vegetable'}
内容的提问来源于stack exchange,提问作者gogo325
相关产品推荐
相关产品推荐

