python中的字典排序--sorted()

字典的排序:在学习python的时候,了解到相比于列表,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的!
关于字典的排序,下面从键key值value 进行代码的运行和分析:
【先看代码和执行结果,后面会进行详细的解析】

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

①根据字典的key排序

#  单独打印出排序后的key值
new_sys = sorted(sys)
print(new_sys)

new_sys = sorted(sys.keys())
print(new_sys)

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

new_sys1 = sorted(sys.items(), reverse=False)
print(new_sys1)

打印结果:

['age', 'gender', 'name']
['age', 'gender', 'name']
[('age', '十八'), ('gender', 'man'), ('name', '张三')]
[('age', '十八'), ('gender', 'man'), ('name', '张三')]

②根据字典的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', '十八', '张三'] 
[('gender', 'man'), ('age', '十八'), ('name', '张三')]

sorted()默认是按照升序排列,并且是按照ASCII码表的顺序排列的

代码解析
关于sorted()函数解释:https://blog.csdn.net/gymaisyl/article/details/83039321
解析一:

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’, ‘张三’), (‘age’, ‘十八’), (‘gender’, ‘man’)])

// 将原来的字典中的键值对,分别搜存入到一个元组中–>(key,value)

key=lambda d: d[0] 是一个匿名函数;
其中:

d == (‘name’, ‘张三’) 或 (‘age’, ‘十八’)或(‘gender’, ‘man’)

d[0]是获取每个元组中的第一个元素,就是原sys字典中的key;并将匿名函数的返回值返回给sorted函数的key参数

reverse=False 排序默认是按照升序排列的,也可以改为True

解析三:

sorted(sys.values())  

sorted函数默认是根据键key排序的,所以想要根据值value排序,就需要在sys后面使用values(),获取字典的value值

解析四:

new_sys2 = sorted(sys.items(),  key=lambda d: d[1], reverse=False)

d == (‘name’, ‘张三’) 或 (‘age’, ‘十八’)或(‘gender’, ‘man’)

d[1]是获取每个元组中的第二个元素,就是原sys字典中的value;并将匿名函数的返回值返回给sorted函数的key参数

### 回答1: sorted函数可以对字典进行排序。默认按照字典的键进行排序。 如果要按照字典的值进行排序,可以使用lambda函数和operator.itemgetter()来实现。 示例代码: ``` import operator d = {'a': 2, 'b': 1, 'c': 3} sorted_d = sorted(d.items(), key=operator.itemgetter(1)) print(sorted_d) ``` 输出结果: ``` [('b', 1), ('a', 2), ('c', 3)] ``` 也可以使用lambda 函数 ``` d = {'a': 2, 'b': 1, 'c': 3} sorted_d = sorted(d.items(), key=lambda x: x[1]) print(sorted_d) ``` 输出结果: ``` [('b', 1), ('a', 2), ('c', 3)] ``` ### 回答2: 在Python字典是一种存储键值对的数据结构,通常用于快速查找和访问数据。但是,当需要对字典进行排序时,我们需要使用pythonsorted函数。 sorted函数是用来排序数据的,可以对字符串、列表、元组、字典等对象进行排序。对于字典,如果要将其按照键(key)或值(value)进行排序,需要使用sorted的关键字参数key。使用key可以指定一个排序函数,通过返回值对字典的键或值进行排序。 以下是使用key实现对字典按照键排序: ```python student_dict = {'Tom': 90, 'Alice': 78, 'Bob': 88, 'David': 80} sorted_dict = dict(sorted(student_dict.items(), key=lambda item: item[0])) print(sorted_dict) ``` 输出:{'Alice': 78, 'Bob': 88, 'David': 80, 'Tom': 90} 在上述代码,我们使用items方法将字典转换为键值对元组的列表,然后使用sorted函数对列表进行排序,key=lambda item: item[0]指定以键为排序依据。最后,我们使用dict方法将排序后的列表转换回字典。 以下是使用key实现对字典按照值排序: ```python student_dict = {'Tom': 90, 'Alice': 78, 'Bob': 88, 'David': 80} sorted_dict = dict(sorted(student_dict.items(), key=lambda item: item[1])) print(sorted_dict) ``` 输出:{'Alice': 78, 'David': 80, 'Bob': 88, 'Tom': 90} 在上述代码,我们同样使用items方法将字典转换为键值对元组的列表,然后使用sorted函数对列表进行排序,key=lambda item: item[1]指定以值为排序依据。最后,我们使用dict方法将排序后的列表转换回字典。 最后,我们需要注意的是,排序后的字典不是原字典的视图,而是一个新字典,它与原字典的项的相对顺序相同。 ### 回答3: 在 Python 字典是一种无序的数据类型,它由键和值组成。如果要按照字典的键或值来进行排序,我们可以使用 Python sorted() 函数。 sorted() 函数可以用于按照字典的键或值来进行排序。当 sorted() 函数应用于字典时,它会返回一个由键值对组成的列表。我们可以使用 lambda 函数来指定排序的方式。 以按照字典键值升序排序为例,代码如下: ``` my_dict = {'apple': 5, 'banana': 4, 'orange': 6} sorted_dict = sorted(my_dict.items(), key=lambda x: x[0]) print(sorted_dict) ``` 上述代码将输出:[('apple', 5), ('banana', 4), ('orange', 6)],其sorted() 函数根据字典的键进行排序,lambda 函数指定了排序的方式,x[0] 表示按照键来排序。 如果想按照字典的值进行排序,则需要将 x[0] 改为 x[1],代码如下: ``` my_dict = {'apple': 5, 'banana': 4, 'orange': 6} sorted_dict = sorted(my_dict.items(), key=lambda x: x[1]) print(sorted_dict) ``` 上述代码将输出:[('banana', 4), ('apple', 5), ('orange', 6)],其sorted() 函数根据字典的值进行排序。 需要注意的是,sorted() 函数会将字典转换为列表进行排序,因此输出结果的每个元素都是一个包含键值对的元组。如果需要将排序结果转换回字典,我们可以使用 Python 的 dict() 函数,代码如下: ``` my_dict = {'apple': 5, 'banana': 4, 'orange': 6} sorted_dict = sorted(my_dict.items(), key=lambda x: x[0]) final_dict = dict(sorted_dict) print(final_dict) ``` 上述代码将输出:{'apple': 5, 'banana': 4, 'orange': 6},其,final_dict 是一个排序后的字典
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值