python 字典排序
时间: 2023-09-24 07:05:45 浏览: 69
Python 字典是一种无序的数据结构,如果需要对字典进行排序,需要将其转换为有序的数据结构,如列表或元组。以下是一些常用的对字典进行排序的方法。
1. 按键排序
```python
d = {'a': 2, 'b': 1, 'c': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: x[0]))
print(sorted_d) # {'a': 2, 'b': 1, 'c': 3},按键排序
```
2. 按值排序
```python
d = {'a': 2, 'b': 1, 'c': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1]))
print(sorted_d) # {'b': 1, 'a': 2, 'c': 3},按值排序
```
3. 按键或值的长度排序
```python
d = {'aa': 2, 'b': 1, 'ccc': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: len(x[0])))
print(sorted_d) # {'b': 1, 'aa': 2, 'ccc': 3},按键的长度排序
sorted_d = dict(sorted(d.items(), key=lambda x: len(str(x[1]))))
print(sorted_d) # {'b': 1, 'aa': 2, 'ccc': 3},按值的长度排序
```
4. 按多个条件排序
```python
d = {'aa': 2, 'b': 1, 'ccc': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: (len(x[0]), x[1])))
print(sorted_d) # {'b': 1, 'aa': 2, 'ccc': 3},先按键的长度排序,再按值排序
```
5. 逆序排序
```python
d = {'aa': 2, 'b': 1, 'ccc': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
print(sorted_d) # {'ccc': 3, 'aa': 2, 'b': 1},按值逆序排序
```
阅读全文