首页 / PYTHON / python进阶--字典排序
python进阶--字典排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python进阶--字典排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2247字,纯文字阅读大概需要4分钟。
内容图文
![python进阶--字典排序](/upload/InfoBanner/zyjiaocheng/760/6d0d8bc484eb48a68254e8321edbf05c.jpg)
- zip()函数
- sorted()
要求对字典中,按值的大小排序
解决方案:
利用zip函数
zip函数介绍:
zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python2中返回一个列表
常用操作方法
In [1]: a = [1,2,3]
In [2]: b = [2, 4, 6]
In [3]: zip(a, b)
Out[3]: <zip at 0x109d1dc08>
In [4]: list(zip(a, b))
Out[4]: [(1, 2), (2, 4), (3, 6)]
In [5]: zip(*zip(a,b))
Out[5]: <zip at 0x109d7a148>
In [6]: list(zip(*zip(a,b)))
Out[6]: [(1, 2, 3), (2, 4, 6)]
利用zip可以将列表压缩成元组列表的特性,将字典的key和value压成一个元组,然后按照元组的方式进行比较,从而达到排序的目的。
代码如下
# 生成一个字典
data = {x: randint(60, 100) for x in 'abcxyz'}
print(sorted(zip(data.values(), data.keys())))
输出:[(69, 'c'), (75, 'a'), (76, 'x'), (81, 'z'), (94, 'y'), (95, 'b')]
直接利用sorted排序
sorted()方法,常用来对list进行直接排序
例如
In [7]: sorted([1, 5, 2, 9])
Out[7]: [1, 2, 5, 9]
对字典排序,利用sorted()函数的key参数
In [12]: data.items()
Out[12]: dict_items([('a', 76), ('b', 83), ('c', 77), ('x', 72), ('y', 61), ('z', 81)])
In [13]: sorted(data.items(), key=lambda x: x[1], reverse=True)
Out[13]: [('b', 83), ('z', 81), ('c', 77), ('a', 76), ('x', 72), ('y', 61)]
每次迭代data.items(),将data.items()中的一个元素赋于key,然后排序,此处x就是data.items()的一个元素,x[1]为该元组的第一个值,赋于key,按key排序,
reverse=True 表示按降序排列,默认按升序排列
本文介绍了按字典的值排序的两种方法,第二种从空间复杂度和时间复杂度上更优
内容总结
以上是互联网集市为您收集整理的python进阶--字典排序全部内容,希望文章能够帮你解决python进阶--字典排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。