如何在字典中创建嵌套字典并为现有值指定对应键?
字典转换为嵌套字典的实现方法
原字典结构:
original_dict = { 'Salmon:': ['150.7,', 'False'], 'Carrot:': ['30.5,', 'True'] }
目标结构:
target_dict = { 'Salmon': {'nutritional_value': 150.7, 'vegan': False}, 'Carrot': {'nutritional_value': 30.5, 'vegan': True} }
快速实现(字典推导式)
用一行推导式即可完成转换,高效简洁:
original_dict = { 'Salmon:': ['150.7,', 'False'], 'Carrot:': ['30.5,', 'True'] } converted_dict = { key.rstrip(':'): { 'nutritional_value': float(val[0].rstrip(',')), 'vegan': val[1] == 'True' } for key, val in original_dict.items() } print(converted_dict)
分步实现(循环写法,适合新手理解)
如果需要更清晰的步骤拆分,用普通循环实现:
original_dict = { 'Salmon:': ['150.7,', 'False'], 'Carrot:': ['30.5,', 'True'] } converted_dict = {} for key, value in original_dict.items(): # 移除键名末尾的冒号 new_key = key.rstrip(':') # 移除营养值字符串末尾的逗号并转为浮点数 nutritional_val = float(value[0].rstrip(',')) # 将字符串形式的布尔值转为Python原生布尔类型 vegan_status = value[1] == 'True' # 构建嵌套字典并添加到新字典中 converted_dict[new_key] = { 'nutritional_value': nutritional_val, 'vegan': vegan_status } print(converted_dict)
关键处理点说明
- 键名清理:通过
rstrip(':')移除原键末尾的多余冒号,得到干净的食材名称 - 数值转换:先清理营养值字符串的逗号,再用
float()转为数值类型,满足后续计算需求 - 布尔值转换:通过字符串比较将
'True'/'False'转为Python原生的True/False,符合布尔类型的使用规范
内容的提问来源于stack exchange,提问作者layan
相关产品推荐
相关产品推荐

