字典运算

字典运算

问题

在数据字典中执行一些计算操作(比如求最小值、最大值、排序)?

解决

对字典值执行计算操作,通常需要使用zip函数将键和值反转过来

>>> prices = {
...     'ACME': 45.23,
...     'AAPL': 612.78,
...     'IBM': 205.55,
...     'HPQ': 37.20,
...     'FB': 10.75
... }
>>> 
>>> 
>>> 
>>> 
>>> min_price = min(zip(prices.values(), prices.keys()))
>>> min_price
(10.75, 'FB')
>>> max_price = max(zip(prices.values(), prices.keys()))
>>> max_price
(612.78, 'AAPL')

还可以用zipsorted函数

>>> prices_sorted = sorted(zip(prices.values(), prices.keys()))
>>> prices_sorted
[(10.75, 'FB'), (37.2, 'HPQ'), (45.23, 'ACME'), (205.55, 'IBM'), (612.78, 'AAPL')]

注意

zip函数创建的是一个只能访问一次迭代器

>>> prices_and_names = zip(prices.values(), prices.keys())
>>> print(min(prices_and_names)) # OK
(10.75, 'FB')
>>> print(max(prices_and_names))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: max() arg is an empty sequence
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 字典运算 问题 如何在数据字典中执行计算操作(例如,求最大最小值,排序等)? 解决方法 示例字典如下(股票名称和价...
    大梦三千秋阅读 2,833评论 0 3
  • 问题 怎样在数据字典中执行一些计算操作(比如求最小值、最大值、排序等等)? 解决方案 考虑下面的股票名和价格映射字...
    惑也阅读 4,266评论 0 2
  • 使用 zip() 和 sorted() 函数来排列字典数据: 使用 zip() 和 min() 函数来取字典最小值...
    龃龉前行阅读 2,615评论 0 1
  • 1. 迭代对象解压赋值 解压赋值操作可以应用到任何迭代对象上,如:列表、元组、字符串、文件对象、迭代器、生成器。 ...
    faris_shi阅读 4,799评论 0 0
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 9,804评论 0 13

友情链接更多精彩内容