python中sorted对字典排序
时间: 2023-05-31 19:18:15 浏览: 221
### 回答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中,字典是一种存储键值对的数据结构,通常用于快速查找和访问数据。但是,当需要对字典进行排序时,我们需要使用python中的sorted函数。
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 是一个排序后的字典。
阅读全文