在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ 關(guān)于 python 中一個字典操作的問題,按條件分隔

關(guān)于 python 中一個字典操作的問題,按條件分隔

從數(shù)據(jù)庫獲取到的數(shù)據(jù)是這樣的一個字典

{
    'q_1': 9, 'q_2': 12, 'q3': 22, 'q4': 2, 'q5': 6,
    'w_1': 9, 'w_2': 12, 'w_3': 22, 'w_4': 2, 'w_5': 6,
    'e_1': 9, 'e_2': 12, 'e_3': 22, 'e_4': 2, 'e_5': 6,
    'r_1': 9, 'r_2': 12, 'r_3': 22, 'r_4': 2, 'r_5': 6
}

怎么 把它分割成這個樣子

{
    'q': {'q_1': 9, 'q_2': 12, 'q3': 22, 'q4': 2, 'q5': 6},
    'w': {'w_1': 9, 'w_2': 12, 'w_3': 22, 'w_4': 2, 'w_5': 6},
    ...
}

現(xiàn)在我是通過 for 干的 有沒有簡單便捷的方法呢。謝謝

回答
編輯回答
朕略萌

可以用itertools.groupby,參考下這篇文章:https://segmentfault.com/a/11...

from itertools import groupby
d = {
    'q_1': 9, 'q_2': 12, 'q3': 22, 'q4': 2, 'q5': 6,
    'w_1': 9, 'w_2': 12, 'w_3': 22, 'w_4': 2, 'w_5': 6,
    'e_1': 9, 'e_2': 12, 'e_3': 22, 'e_4': 2, 'e_5': 6,
    'r_1': 9, 'r_2': 12, 'r_3': 22, 'r_4': 2, 'r_5': 6
}

new_dict = dict()
items = sorted(d.items())
for key, group in groupby(items, key=lambda x: x[0][0]):
    new_dict[key] = dict(group)
print(new_dict)
2017年8月8日 18:23