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

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

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

prices={
    "apple":'5',
    "peach":'3',
    "pear":'4'
}

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

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


prices={
    "apple":'5',
    "peach":'3',
    "pear":'4'
}
print(min(prices))  # apple
print(max(prices))  #pear

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


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,他可以将键和值反过来。有了这个函数,刚刚的需求就很简单了。


maxItem=max( zip(prices.values(),prices.keys()))
minItem=min(zip(prices.values(),prices.keys()))
print(maxItem,minItem)  #('5', 'apple') ('3', 'peach')

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


newPri = zip(prices.values(),prices.values())
print(max(newPri))
print(min(newPri))  #第二次使用newPri就会报错,ValueError: min() arg is an empty sequence
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇