[Python高效编程] - 根据字典的大小,对字典中的项排序
2017-11-18 23:20
309 查看
Python中根据字典的大小,对字典中的项排序
调试工具:pycharm 2017.1.3
电脑系统:Windows 10 64位系统
发现只是对键排序了,并没有对值排序
开发环境
Python版本: python3.6调试工具:pycharm 2017.1.3
电脑系统:Windows 10 64位系统
生成数据
from random import randint data = {x: randint(60, 100) for x in 'xyzabcd'} print(data)
{' 4000 x': 64, 'y': 61, 'z': 74, 'a': 99, 'b': 98, 'c': 62, 'd': 69}
按照值排序
直接使用sortedfrom random import randint data = {x: randint(60, 100) for x in 'xyzabcd'} print(data)
print(sorted(data))
{'x': 97, 'y': 67, 'z': 62, 'a': 92, 'b': 67, 'c': 90, 'd': 80} ['a', 'b', 'c', 'd', 'x', 'y', 'z']
发现只是对键排序了,并没有对值排序
使用zip将数据转化为元祖排序
from random import randint # 生成数据 data = {x: randint(60, 100) for x in 'xyzabcd'} print(data) # 使用zip将字典打包成元祖并排序 res = sorted(zip(data.values(), data.keys())) print(res)
{'x': 67, 'y': 94, 'z': 66, 'a': 71, 'b': 98, 'c': 63, 'd': 69} [(63, 'c'), (66, 'z'), (67, 'x'), (69, 'd'), (71, 'a'), (94, 'y'), (98, 'b')]
传递sorted函数key参数
from random import randint # 生成数据 data = {x: randint(60, 100) for x in 'xyzabcd'} print(data) # 传递sorted函数key参数 res1 = sorted(data.items(), key=lambda x: x[1]) print(res1)
{'x': 90, 'y': 98, 'z': 84, 'a': 78, 'b': 72, 'c': 96, 'd': 99} [('b', 72), ('a', 78), ('z', 84), ('x', 90), ('c', 96), ('y', 98), ('d', 99)]
相关文章推荐
- python高效编程技巧4(如何根据字典中值的大小,对字典的项进行排序)
- Python高级编程-如何根据字典中值得大小,对字典中的项排序
- python高效编程技巧1 (如何在列表,字典,集合中根据条件筛选数据)
- [Python高效编程] - 在列表,字典,集合中根据条件筛选数据
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
- Python高级编程-如何在列表,字典,集合中根据条件筛选数据?
- Python高效编程-快速找出多个字典中的公有键
- 2-4根据字典中值的大小,对字典中的项排序
- python-2-3-如何根据字典中值的大小,对字典中的项排序?
- 根据字典中值的大小对字典中的项排序
- [Python高效编程] - 快速找到多个字典的公共键
- python【4】根据字典中值的大小,对字典的键进行排序
- python根据字典中值的大小,对字典中的项排序
- Python高效编程-对字典的值进行排序
- <26>python学习笔记——根据字典中的值的大小进行排序
- python高效编程技巧5(如何快速找到多个字典中的公共键)
- Python高效编程技巧
- [python&php 网络编程]socket缓冲区大小设置
- Python高效编程技巧
- Python: 字典列表: itemgetter 函数: 根据某个或某几个字典字段来排序列表