杨魅力
看起来您必须初始化a为 a defaultdict,而不是列表>>> from collections import defaultdict>>> new2 = {'caseid': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}}>>> a = defaultdict(list)>>> for x,y in new2['caseid'].items():... a[y].append(x)... >>> print(a)defaultdict(<class 'list'>, {1: [0, 1], 2: [2, 3, 4], 6: [5]})>>> print(dict(a)){1: [0, 1], 2: [2, 3, 4], 6: [5]}
神不在的星期二
如果您有一组以上的嵌套字典new_d = {'caseid1': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}, 'caseid2': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}, 'caseid3': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}, 'caseid4': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}, 'caseid5': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}, 'caseid6': {0: 1, 1: 1, 2: 2, 3: 2, 4: 2, 5: 6}}a = defaultdict(list)for k1, v1 in new_d.items(): for k2, v2 in v1.items(): a[f'{k1}_{v2}'].append(k2)dict(a)output:{'caseid1_1': [0, 1], 'caseid1_2': [2, 3, 4], 'caseid1_6': [5], 'caseid2_1': [0, 1], 'caseid2_2': [2, 3, 4], 'caseid2_6': [5], 'caseid3_1': [0, 1], 'caseid3_2': [2, 3, 4], 'caseid3_6': [5], 'caseid4_1': [0, 1], 'caseid4_2': [2, 3, 4], 'caseid4_6': [5], 'caseid5_1': [0, 1], 'caseid5_2': [2, 3, 4], 'caseid5_6': [5], 'caseid6_1': [0, 1], 'caseid6_2': [2, 3, 4], 'caseid6_6': [5]}