Python sorted() 函数按字典键值排序详解
本文详细解析Python中sorted()函数对字典进行排序的方法。通过key参数指定排序依据,可实现按字典的键(key)或值(value)进行升序或降序排列。文章包含具体代码示例,演示如何对简单字典、嵌套元组列表及字符串列表进行自定义排序,帮助开发者掌握灵活的数据排序技巧。
Python sorted() 函数
sorted() 函数用于对所有可迭代对象执行排序操作。
sorted 语法如下:
sorted(iterable, key=None, reverse=False)
参数说明:
iterable – 表示可迭代对象。
key – 主要用于指定比较的元素,该参数仅接受一个参数,其值取自可迭代对象中的元素,用于指定对哪个元素进行排序。
reverse – 定义排序规则,当 reverse = True 时为降序,reverse = False 时为升序(默认值)。
1、对字典按键(key)进行排序
dir_info= {'a':1,'d':8,'c':3,'b':5}
#对字典按键(key)进行排序(默认由小到大)
dir_sort = sorted(dir_info.items(),key=lambda x:x[0])
print(dir_sort)
输出结果: [('a', 1), ('b', 5), ('c', 3), ('d', 8)]
直接对字典的key排序
sorted({'a':1,'d':8,'c':3,'b':5}.keys())
2、对字典按值(value)进行排序
dir_info= {'a':1,'d':8,'c':3,'b':5}
#对字典按键(key)进行排序(默认由小到大)
dir_sort = sorted(dir_info.items(),key=lambda x:x[1])
print(dir_sort)
输出结果 [('a', 1), ('c', 3), ('b', 5), ('d', 8)]
直接对字典的value排序
sorted({'a':1,'d':8,'c':3,'b':5}.values())
解析:
dir_info.items() 用于获取字典的 key 和 value 两个参数。
dir_info[0] 表示按照第一个元素进行排序。
dir_info[1] 表示按照第二个元素进行排序。
为了便于理解,再举个例子
person_info = [('zhangsan', '男', 15), ('lisi', '男', 12), ('wangwu', '男', 10),]
person_sort = sorted(person_info, key=lambda x: x[2])
print(person_sort)
输出结果: [('wangwu', '男', 10), ('lisi', '男', 12), ('zhangsan', '男', 15)]
当然key的形式也是多样的 比如:
1.按照字符串长度进行排序
key = lambda x:len(x)
2.先按照第一个元素,再按照第二个元素:
key = lambda x : (x[0] , x[1])
扩展:
将列表中数据的某一部分作为关键字进行排序(选取标志性可用于排序的元素作为条件)
list_info = ['test-10.txt','test-11.txt','test-22.txt','test-14.txt','test-3.txt','test-20.txt']
list_sort = sorted(list_info, key=lambda d : int(d.split('-')[1].split('.')[0]))
print(list_sort)
输出结果 ['test-3.txt', 'test-10.txt', 'test-11.txt', 'test-14.txt', 'test-20.txt', 'test-22.txt']
以上就是Python教程按照字典的键或值进行排序方法解析的详细内容,更多关于Python按照字典的键或值进行排序的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













