Python中如何重排字典内的配对项生成指定格式结果
Python字典键内配对重排实现方案
核心思路
- 遍历原始字典的所有键,原始字典的value不参与最终集合生成,可直接忽略
- 单个键可能包含多组「实体:分类」配对,配对之间用英文逗号分隔,先按逗号拆分出所有独立配对
- 对每个独立配对去除首尾多余空格后,按英文冒号分割为实体、分类两部分,同样去除两部分首尾的空格
- 调换两部分顺序,拼接为「分类:实体」的目标格式
- 把所有拼接完成的字符串存入集合,自动去重后就得到要求的输出格式
代码实现
# 原始待处理字典 origin_dict = { 'peaches: fruit': 2, 'cake: dessert, kale: vegetable': 1, 'carrots: vegetable': 1, 'pears: fruit': 1 } result = set() # 遍历所有字典键 for key in origin_dict.keys(): # 拆分同一个键里的多组配对 pairs = key.split(',') for pair in pairs: # 去除空格后按冒号拆分 item, category = [i.strip() for i in pair.split(':')] # 调换顺序拼接后加入集合 result.add(f"{category}:{item}") print(result)
运行输出
{'vegetable:kale', 'fruit:pears', 'dessert:cake', 'fruit:peaches', 'vegetable:carrots'}
补充说明
- 所有字符串拆分步骤都加了
strip()处理,兼容原始数据里冒号、逗号前后空格数量不固定的情况,不会出现多余空格 - 如果你后续需要保留原始字典里的计数信息,只需要把存储结构从集合换成字典,拼接后的字符串作为键,累加原始字典对应的value即可
- 集合本身是无序的,如果需要固定输出顺序,可以把结果转成列表后再按需求排序
内容的提问来源于stack exchange,提问作者Ana
相关产品推荐
相关产品推荐

