Python如何根据字典值列表中的元素对字典进行排序?
按字典值中的年份排序的解决方案
要实现按字典值列表里的年份元素升序排序,可通过sorted()结合lambda表达式完成,具体如下:
- 原数据定义
Data = {1: ["name", 2010], 2: ["name", 2005], 3: ["name", 2000]}
- 排序代码实现
# 按值中的年份升序排序,将排序后的键值对列表转为字典 sortedDataByYear = dict(sorted(Data.items(), key=lambda x: x[1][1]))
- 代码说明
Data.items():获取字典的所有键值对,返回形如(key, value)的元组列表lambda x: x[1][1]:指定排序依据——取每个键值对元组x中的值列表x[1],再取列表的第二个元素(即年份)作为排序关键字dict(...):将sorted()返回的排序后元组列表转换为有序字典(Python 3.7及以上版本的普通字典默认保留插入顺序)
执行上述代码后,sortedDataByYear将得到期望结果:
{3: ["name", 2000], 2: ["name", 2005], 1: ["name", 2010]}
内容的提问来源于stack exchange,提问作者Ash Haghighi
相关产品推荐
相关产品推荐

