Python字典按键/值排序的几种方法
时间:2022-07-28
本文章向大家介绍Python字典按键/值排序的几种方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文介绍对Python字典的按键和按值排序的几种方式。
按键排序
# 对字典按键排序
def sort_by_key(d):
'''
d.items() 返回元素为 (key, value) 的可迭代类型(Iterable),
key 函数的参数 k 便是元素 (key, value),所以 k[0] 取到字典的键。
'''
return sorted(d.items(), key=lambda k: k[0])
def main():
dic = {'a': 2018, 'z': 2019, 'b': 2017}
print(sorted(dic)) # ['a', 'b', 'z']
print(sort_by_key(dic)) # [('a', 2018), ('b', 2017), ('z', 2019)]
print(dict(sort_by_key(dic))) # {'a': 2018, 'b': 2017, 'z': 2019}
if __name__ == '__main__':
main()
如上所示:
- 如果直接调用
sorted
函数,只会对字典的键进行排序,返回键排序后的列表['a', 'b', 'z']
- 通过自己编写
sort_by_key
函数,首先通过sorted
函数返回列表,然后其中包含的元素为 tuple:('a', 2018), ('b', 2017), ('z', 2019)
- 如果想得到按键排序后的字典,可以通过
dict
函数将包含元组的列表转换为所需要的字典{'a': 2018, 'b': 2017, 'z': 2019}
按值排序
同理,如果我们只需要对sort_by_value稍微修改一下,就可以得到按值排序的结果:
def sort_by_value(d):
return sorted(d.items(), key=lambda k: k[1]) # k[1] 取到字典的值。
def main():
dic = {'a': 2018, 'z': 2019, 'b': 2017}
print(sort_by_value(dic)) # [('b', 2017), ('a', 2018), ('z', 2019)]
if __name__ == '__main__':
main()
collections模块的OrderedDict
from collections import OrderedDict
sort_dict_by_key = OrderedDict(dic) # 默认按键排序
print(sorted_dict_by_key) # OrderedDict([('a', 2018), ('z', 2019), ('b', 2017)])
sort_dict_by_value = OrderedDict(sorted(dic.items(), key=lambda k: k[1]))
print(sort_dict_by_value) # OrderedDict([('b', 2017), ('a', 2018), ('z', 2019)])
operator模块
from operator import itemgetter
dic = {'a': 2018, 'z': 2019, 'b': 2017}
print('Original dictionary : ', dic)
sorted_d = dict(sorted(dic.items(), key=itemgetter(0)))
print('Dictionary in ascending order by key : ', sorted_d)
sorted_d = dict(sorted(dic.items(), key=itemgetter(1)))
print('Dictionary in ascending order by value : ', sorted_d)
结果:
Original dictionary : {'a': 2018, 'z': 2019, 'b': 2017}
Dictionary in ascending order by key : {'a': 2018, 'b': 2017, 'z': 2019}
Dictionary in ascending order by value : {'b': 2017, 'a': 2018, 'z': 2019}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法