python中字典get()方法的参数是,字典里的get函数
在字典内置的方法中,我想说的方法是get。该方法通过键获取对应的值,但如果对应的键不存在,则返回None。本文主要介绍python字典中get()函数的基本用法,有需要的朋友可以参考一下。
00-1010前言1。get()函数使用密钥来获取值2。字典用于计算元素在列表中出现的次数。补充:与dict的区别总结[key]
目录
以下内容均为个人笔记,仅供参考。由于内容都是从自己的实践经验中得来的,个人水平有限。如有错误,请指正。
注意:编程语言是Python3
前言
过去学习python时,常见的获取值的方式是直接的。
print(字典[关键字])
但是,在这个方法中,当字典中不存在该键时,将返回KeyError类型,然后可以使用get()函数通过使用该键来获取值。
print(dict.get(key))
当使用get()函数进行操作时,当输入的键在字典中不存在时,它会返回一个None,这样程序就会无异常运行。
1.get()函数利用键来获取值
例如,现在有一个列表,允许您计算列表中某些元素出现的次数。
ls=[aa , b , c , ddd , aa]
计算列表中每个元素出现的次数:
创建一个空字典
对于ls:中的I
在cou[i]=cou.get(i,0) 1 #之后,称为get的赋值语句,目的是创建一个新的字典键值对。
赋值语句代码相当于
cou[i]=0
cou[I]=cou 1
打印(国家)
输出结果:
{aa: 2, b: 1, c: 1, ddd: 1}
get()函数在这里有两个参数。第一个是确定要赋值的键,第二个是给键赋一个初始值。然而,实际上,仍然需要get assignment语句来给键赋值。(为什么说这是下面描述的)
假设我现在将这个语句添加到代码中。
Cou.get(b ,10) #后来被称为草稿初始值语句。
初值语句本身对结果没有影响,因为对键没有实际的赋值语句操作(我个人感觉初值语句拟定是因为在字典中没有找到要赋值的键,赋值失败是因为没有要赋值的键,相当于一个没有返回值的函数,即使给了函数参数也没有返回结果)。
注意:get()函数只有在第一次用作键赋值语句时才有效(非草稿赋值语句,区别见代码框中的注释)。(例如,当get()函数第一次对键 aa 使用get赋值语句,然后下一次使用get赋值语句时,键的值仍然是第一次赋值操作的结果)。以下是测试代码:
ls=[aa , b , c , ddd , aa]
创建一个空字典
对于ls:中的I
Cou[i]=cou.get(i,0) 1 #函数逻辑描述如下。
Cou[aa]=cou.get(aa ,10) #该函数与前面的代码第二次执行时的函数相同。
打印(国家)
让我们关注第四行代码:cou[i]=cou.get(i,0) 1。
第行的代码逻辑上执行了两次,在这两次中get语句的功能每次都不一样:
第一次:cou [i]=cou.get (i,0) 1 (i= aa )
这个时候get语句的作用就是赋值初始值,也就是把key aa 的初始值设置为0然后加1。
第二次:cou [i]=cou.get (i,0) 1 (i= aa )
由于get语句已经作为赋值语句出现过一次,此时再次执行该语句时,赋值函数无效,即get语句中的第二个参数对于 aa 键无效。此时,get语句的功能是文章第一部分介绍的功能,因此该语句可以等效为
cou[i]=cou.get(i) 1
也就是
cou[I]=cou 1
输出与前面的代码结果相同:
{aa: 2, b: 1, c: 1, ddd: 1}
单独使用get赋值语句时,如果键第一次出现,效果与赋值语句相同(效果与之前在空字典中通过for循环创建新的键-值对相同)
cou[e]=cou.get(e,10)
输出结果:
``蟒蛇皮
{aa: 10, b: 1, c: 1, ddd: 1, e:10}
顺便说一句,如果你想直接改变字典中键的值,你可以使用下面的方法:
Cou[aa]=10 #这个赋值语句是强制的。
打印(cou
{aa: 10, b: 1, c: 1, ddd: 1}
2.利用字典统计列表中元素出现次数
当键值存在时,Dict.get(key)和dict[key]都可以得到对应的键值。但是当使用dict[key]时,该键必须存在,否则会报错。但是dict.get[key]中的key不能存在,因为get方法有一个默认参数None,当key不存在时,返回None。
补充:和dict[key]的区别
关于python字典中get()函数的基本用法的这篇文章就到这里了。关于python字典中get()函数用法的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。