我有一个词典
d = {'A1BB11': 10,
'B1CC55': 20,
'A1A11': 30,
'A1A21': 40,
'B1HH21': 50,
'C1KK88': 60
}
我想从prev dict d获得一个新的词典
new_d = {'A1(80)':['BB11', 'A11', 'A21'],
'B1(70)':['CC55', 'HH21'],
'C1(60)':['KK88']
}
你能提供一种简单的pythonic方式吗?我是蟒蛇世界的新手。
答案 0 :(得分:0)
我认为最简单的方法是创建两个词典来跟踪你关注的两个值:总和和后缀列表。
from collections import defaultdict
d1, d2 = defaultdict(int), defaultdict(list)
d = {'A1BB11': 10,
'B1CC55': 20,
'A1A11': 30,
'A1A21': 40,
'B1HH21': 50,
'C1KK88': 60
}
for k, v in d.items():
prefix = k[:2]
d1[prefix] += v
d2[prefix].append(k[2:])
final = {'{}({})'.format(k, d1[k]): v for k, v in d2.items()}
print(final)
# {'A1(80)': ['BB11', 'A11', 'A21'],
# 'B1(70)': ['CC55', 'HH21'],
# 'C1(60)': ['KK88']}