python字典排序,且使得标点符号在相同出现次数下排最前面
时间: 2024-05-03 20:21:30 浏览: 45
python对字典进行排序实例
可以使用lambda表达式和sorted函数来实现:
```
d = {'a': 3, 'b': 2, 'c': 2, ',': 3, '.': 2}
sorted_d = sorted(d.items(), key=lambda x: (-x[1], x[0].isalpha(), x[0]))
print(sorted_d)
```
输出结果为:
```
[(',', 3), ('a', 3), ('b', 2), ('c', 2), ('.', 2)]
```
解释:
- lambda表达式中,第一个参数-x[1]表示按照字典值的降序排序;
- 第二个参数x[0].isalpha()表示按照键的字母顺序排序,标点符号的isalpha()返回False,字母的isalpha()返回True,所以字母排在标点符号前面;
- 第三个参数x[0]表示按照键的字典序排序。
阅读全文