如何在Python中将值为元组的字典转换为嵌套字典?
如何将Python字典中的元组值转换为嵌套字典?
原始输入字典
original_dict = { 1: (0, 4, 12, 27, 25, 58), 2: (4, 0, 24, 16, 29, 38), 3: (12, 24, 0, 31, 14, 30), 4: (27, 16, 31, 0, 21, 8), 5: (25, 29, 14, 21, 0, 11), 6: (58, 38, 30, 8, 11, 0) }
目标嵌套字典格式
{ 1: {1: 0, 2: 4, 3: 12, 4: 27, 5: 25, 6: 58}, 2: {1: 4, 2: 0, 3: 24, 4: 16, 5: 29, 6: 38}, 3: {1: 12, 2: 24, 3: 0, 4: 31, 5: 14, 6: 30}, 4: {1: 27, 2: 16, 3: 31, 4: 0, 5: 21, 6: 8}, 5: {1: 25, 2: 29, 3: 14, 4: 21, 5: 0, 6: 11}, 6: {1: 58, 2: 38, 3: 30, 4: 8, 5: 11, 6: 0} }
实现方法
方法1:字典推导式(简洁高效)
利用字典推导式结合zip,将1-6的内层键与元组元素一一对应:
result = { outer_key: {inner_key: val for inner_key, val in zip(range(1, 7), outer_val)} for outer_key, outer_val in original_dict.items() }
方法2:普通循环(直观易懂)
通过两层循环逐个构建内层字典,适合新手理解:
result = {} for outer_key, outer_val in original_dict.items(): inner_dict = {} # 元组索引从0开始,内层键从1开始,所以索引+1得到对应键 for idx, val in enumerate(outer_val): inner_dict[idx + 1] = val result[outer_key] = inner_dict
两种方法都能生成目标格式的嵌套字典,执行后打印result即可验证结果。
内容的提问来源于stack exchange,提问作者DoctorTiko
相关产品推荐
相关产品推荐

