如何在Python中拆分字典的复合键生成新字典?
如何将字典按键的指定分隔符拆分生成新字典?
假设你有一个字典,它的键是用" n "作为分隔符连接的多个子键,想要把每个子键拆出来作为新字典的键,并且都对应原键的值,这里有两种简单的实现方式:
方法一:字典推导式(简洁高效)
用一行代码就能搞定,适合熟悉Python语法的开发者:
original_dict = {"AB n DC": [12, 13], "JH n UY": [22, 1]} new_dict = {sub_key: value for key, value in original_dict.items() for sub_key in key.split(" n ")} print(new_dict) # 输出: {'AB': [12, 13], 'DC': [12, 13], 'JH': [22, 1], 'UY': [22, 1]}
原理很简单:
- 遍历原字典的每一组键值对
key, value - 对每个
key用split(" n ")拆分出子键列表 - 把每个子键和对应的
value映射到新字典里
方法二:普通循环(直观易懂)
如果是新手,用循环的方式更容易理解每一步的操作:
original_dict = {"AB n DC": [12, 13], "JH n UY": [22, 1]} new_dict = {} for key, value in original_dict.items(): # 拆分当前键为子键列表 sub_keys = key.split(" n ") # 遍历子键,逐个添加到新字典 for sub_key in sub_keys: new_dict[sub_key] = value print(new_dict) # 输出和上面一致
两种方法都能实现需求,字典推导式更简洁,循环方式更直观,根据自己的习惯选就行。
内容的提问来源于stack exchange,提问作者Robsmith
相关产品推荐
相关产品推荐

