美文网首页Python
zip() --与字典相关的计算-最大、最小值,排序

zip() --与字典相关的计算-最大、最小值,排序

作者: cook__ | 来源:发表于2018-09-28 15:32 被阅读7次

现有如下字典:

prices = {
    'ACME': 45.23,
    'IBM': 111.32,
    'FB': 45.89
}
求字典的最大最小值,根据value求值

1、通常做法:

prices = {
    'ACME': 45.23,
    'IBM': 111.32,
    'FB': 45.89
}
max(prices, key=lambda k: prices[k])
Out[3]: 'IBM'
min(prices, key=lambda k: prices[k])
Out[4]: 'ACME'

但是这么做,只是返回了字典的键,如需返回对应的value,还需:

prices[max(prices, key=lambda k: prices[k])]
Out[7]: 111.32

2、使用zip(),将字典的键-值对反转为值-键对序列来解决这个问题,这样元组上执行比较操作时,值先比较,再比较键:

max(zip(prices.values(), prices.keys()))
Out[14]: (111.32, 'IBM')
min(zip(prices.values(), prices.keys()))
Out[15]: (45.23, 'ACME')
# 根据value来排序
sorted(zip(prices.values(), prices.keys()))
Out[16]: [(45.23, 'ACME'), (45.89, 'FB'), (111.32, 'IBM')]

注意:
zip()创建了一个迭代器,它的内容只能被消费一次。

a = zip(prices.values(), prices.keys())
max(a)
Out[22]: (111.32, 'IBM')
max(a) # ValueError: max() arg is an empty sequence

相关文章

  • zip() --与字典相关的计算-最大、最小值,排序

    现有如下字典: 求字典的最大最小值,根据value求值 1、通常做法: 但是这么做,只是返回了字典的键,如需返回对...

  • Python实用技法第7篇:字典上对数据执行计算:求最小值、最大

    1、需求? 我们想在字典上对数据执行各式各样的计算,例如:最大值、最小值、排序等 2、解决方案? zip()函数用...

  • 字典运算

    字典运算 问题 在数据字典中执行一些计算操作(比如求最小值、最大值、排序)? 解决 对字典值执行计算操作,通常需要...

  • Python 字典运算

    字典运算 问题 如何在数据字典中执行计算操作(例如,求最大最小值,排序等)? 解决方法 示例字典如下(股票名称和价...

  • 【2017-09-04】数据结构与算法(三)

    字典的运算 字典的简单数学运算问题:怎样在数据字典中执行一些计算操作 (比如求最小值、最大值、排序等等) 在数据字...

  • Python 字典运算

    使用 zip() 和 sorted() 函数来排列字典数据: 使用 zip() 和 min() 函数来取字典最小值...

  • Java集合源码分析之Map(三):接口NavigableMap

    SortedMap提供了获取最大值与最小值的方法,但对于一个已经排序的数据集,除了最大值与最小值之外,我们可以对任...

  • python 数据字典模块内容

    字典排序: zip 假设一个字典股票名称和对应的价格间的映射: prices = {'ACME':45.23, ...

  • python 小技巧

    1.获取列表中出现频率最多的值 判断翻转字符串是否相等 翻转字符串或数字、列表 字典排序 获取列表中最大值/最小值...

  • dict排序

    案例: 对字典中的值进行排序 方案1:使用zip函数 方案2:使用sorted的key

网友评论

    本文标题:zip() --与字典相关的计算-最大、最小值,排序

    本文链接:https://www.haomeiwen.com/subject/tzkpoftx.html