前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习记录08-字典的运算

Python学习记录08-字典的运算

作者头像
huolong
发布2023-09-09 14:07:34
1130
发布2023-09-09 14:07:34
举报
文章被收录于专栏:技术指北

本节的内容是对字节里的值进行运算,比如求最大值,求最小值,让它们排序等 以下有一个简单的字典,我们的需求是获取字典里最大的value的那一对。

当我们要获取它里面的最大或者最小的值时候。我们通常会使用min 和max函数来对 字典的value做比较。

代码语言:javascript
复制
prices={
    "apple":'5',
    "peach":'3',
    "pear":'4'
}

print(max(prices.values()))
print(min(prices.values()))

不能直接用min或者max函数作用于字典,因为你会发现,它最终只生效在key上了。

代码语言:javascript
复制
prices={
    "apple":'5',
    "peach":'3',
    "pear":'4'
}
print(min(prices))  # apple
print(max(prices))  #pear

以上场景,不管对不对,只是输出了key 或者value。没有满足期望。 最简单的方法就是把value 和key翻转过来,在形成一个字典,获取最大的value以及key即可。

代码语言:javascript
复制
prices={
    "apple":'5',
    "peach":'3',
    "pear":'4'
}

secirp={v:k for k,v in prices.items()}
print(secirp)  #{'5': 'apple', '3': 'peach', '4': 'pear'}
print(max(secirp),secirp[max(secirp)])  #5 apple

Python提供了内置的函数,zip,他可以将键和值反过来。有了这个函数,刚刚的需求就很简单了。

代码语言:javascript
复制
maxItem=max( zip(prices.values(),prices.keys()))
minItem=min(zip(prices.values(),prices.keys()))
print(maxItem,minItem)  #('5', 'apple') ('3', 'peach')

但是值得注意的是,zip() 函数创建的是一个只能访问一次的迭代器,不能用多次

代码语言:javascript
复制
newPri = zip(prices.values(),prices.values())
print(max(newPri))
print(min(newPri))  #第二次使用newPri就会报错,ValueError: min() arg is an empty sequence
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年09月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档