首页 > 编程知识 正文

python sorted对字典排序,python的sorted函数是什么排序

时间:2023-05-05 18:34:36 阅读:196147 作者:2900

字典的排序:在学习python的时候,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的。sorted()默认是按照升序排列,并且是按照ASCII码表的顺序排列的。
sorted函数的介绍:
sorted( iterable, key, reverse)
(1)iterable:是可迭代类型的数据;
(2)key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
(3)reverse:排序规则. reverse = True 或者 reverse = False,有默认值,默认为升序排列False

关于字典的排序,下面从键key 和 值value 进行代码的运行和分析:

# 先定义一个字典,首先声明注意一点,字典中的值需要为同一种数据类型;比如在本案例中的值都是字符串类型。sys = {'name': 'wsdxmf', 'age': '十八', 'gender': 'man'}

①根据字典的key排序

# 单独打印出排序后的key值new_sys = sorted(sys)print(new_sys)# 根据key的升序排列,把key value都打印出来new_sys1 = sorted(sys.items(), key=lambda d: d[0], reverse=False)print(new_sys1)

打印结果:

[‘age’, ‘gender’, ‘name’] [(‘age’, ‘十八’), (‘gender’, ‘man’), (‘name’, ‘wsdxmf’)] new_sys = sorted(sys)将字典直接传入到sorted函数中 ,sorted函数会默认根据字典的键k对字典进行排序,同时只取字典的键k的内容,并以列表的形式返回。new_sys1 = sorted(sys.items(), key=lambda d: d[0], reverse=False)其中sys.items()这段代码,在打印输出后,会显示如下结果:dict_items([(‘name’, ‘wsdxmf’), (‘age’, ‘十八’), (‘gender’, ‘man’)]),将原来的字典中的键值对分别搜存入到一个元组中–>(key,value)。key=lambda d: d[0]是一个匿名函数;其中:d == (‘name’, ‘wsdxmf’) 或 (‘age’, ‘十八’)或(‘gender’, ‘man’),d[0]是获取每个元组中的第一个元素,就是原sys字典中的key;并将匿名函数的返回值返回给sorted函数的key参数reverse=False 排序默认是按照升序排列的,也可以改为True。

②根据字典的value值进行排序

# 单独打印出排序后的value值new_sys1 = sorted(sys.values())print(new_sys1)# 打印出根据value排序后的键值对的具体值new_sys2 = sorted(sys.items(), key=lambda d: d[1], reverse=False)print(new_sys2)

打印结果:

[‘man’, ‘十八’, ‘wsdxmf’] [(‘gender’, ‘man’), (‘age’, ‘十八’), (‘name’, ‘wsdxmf’)] sorted(sys.values())sorted函数默认是根据键key排序的,所以想要根据值value排序,就需要在sys后面使用values(),获取字典的value值new_sys2 = sorted(sys.items(), key=lambda d: d[1], reverse=False)其中d == (‘name’, ‘wsdxmf’) 或 (‘age’, ‘十八’)或(‘gender’, ‘man’), d[1]是获取每个元组中的第二个元素,就是原sys字典中的value;并将匿名函数的返回值返回给sorted函数的key参数

原文链接:

python中的字典排序–sorted()sorted()函数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。