python中字典的get方法疑问?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中字典的get方法疑问?相关的知识,希望对你有一定的参考价值。
今天看到一个代码:
dic = 'A':4, 'B':2, 'C':3
max_key = max(dic, key = dic.get)
print(max_key)
问题:dic.get里的这个get是什么意思?字典取值不是应该用get()吗?代码中的写法为什么也可以取到值。字典的get属性里储存的是什么,为什么list(dic.get)提示不可迭代?
正常的遇到这个问题应该会写成max(dic,key=lambda x:dic.get(x))才对吧,怎么会想起来这个不带参数的get?
所有类型的方法都可以赋值给一个变量,这很正常。
你这里只不过是将一个字典对象的实例方法get赋给了函数max的关键字参数key。
这是一个例子:
参考技术A max dic默认比较的对象和返回的对象都是键,比如print(max(dic))得到C,C是键
上述方法希望获得最大的value对应的键,key是被比较的属性,由键映射到值,用get方法
但我觉得上面的方法过于晦涩,容易混淆,简洁易懂的可以改成
print(next(k for k, v in dic.items()
if v == max(dic.values())))追问
我其实想问的实dic.get里的get是什么意思。dic中的get方法是要带参数的,它这个不带参数的get是什么?为什么能取到值?它这个能取到值得写法有什么道理(实例方法里没有这个用法啊,还是说这个写法是什么特殊写法的简写?)
以上是关于python中字典的get方法疑问?的主要内容,如果未能解决你的问题,请参考以下文章
Python 中字典 setdefault 与 get 方法的区别