- Python 3.8从零开始学
- 刘宇宙 刘艳编著
- 323字
- 2022-07-27 19:36:38
5.5 牛刀小试——字典合并与排序
有两个字典,先将字典合并,完成后对合并的字典进行排序。
大体思路:
(1)借助字典的update函数将字典合并。
(2)准备一个将字典转化为列表的函数(知识点:字典转化为列表)。
(3)将转化后的列表进行排序(知识点:列表排序)。
(4)将排序好的列表转化为字典(知识点:列表转化为字典)。
具体实现如下:
>>> def merge_range(): ... lan_ver={"lan": "python", "v": "3.7"} ... rea_ai={"why": "hobby", "how": "do"} ... d_merge=dict() ... d_merge.update(lan_ver) ... d_merge.update(rea_ai) ... desc_list=sorted(dt2ls(d_merge), key=lambda x:x[0], reverse=True) ... desc_dict=dict(desc_list) ... asc_list=sorted(dt2ls(d_merge), key=lambda x:x[0], reverse=False) ... asc_dict=dict(asc_list) ... print(f'合并后的结果:{d_merge}') print(f'按照第0个元素降序排列:{desc_dict}' ) print(f'按照第0个元素升序排列:{asc_dict}' ) ... >>> def dt2ls(dic:dict): ... """ 将字典转化为列表 """ ... keys=dic.keys() ... values=dic.values() ... lst=[(key, val) for key, val in zip(keys, values)] ... return lst ... >>> merge_range()
输出结果:
合并后的结果: {'lan': 'python', 'v': '3.7', 'why': 'hobby', 'how': 'do'} 按照第0个元素降序排列: {'why': 'hobby', 'v': '3.7', 'lan': 'python', 'how': 'do'} 按照第0个元素升序排列: {'how': 'do', 'lan': 'python', 'v': '3.7', 'why': 'hobby'}