文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python字典中get()函数的基本用法实例

2024-04-02 19:55

关注

前言

以下内容均为个人笔记,仅供学习参考使用,因内容均为自己实践经验所得,个人水平有限,如有错误欢迎指正

注:编程语言为Python3

1.get()函数利用键来获取值

之前在学习python的时候,在获取值得时候常用的方法就是直接

print(dict[key])

但这种方法中当字典中不存在该键时会返回KeyError类型错误,此时就可以用get()函数还利用键获取值

print(dict.get(key))

利用get()函数操作时当字典中不存在输入的键时会返回一个None,这样程序运行时就不会出异常

2.利用字典统计列表中元素出现次数

比如现在有这么一个列表,让你统计列表中部分元素出现的次数

ls=['aa','b','c','ddd','aa']

统计列表中每个元素出现次数:

cou={} #创建一个空字典
for i in ls:
    cou[i]=cou.get(i,0)+1     #之后称其为get的赋值语句,目的是新建字典键值对
    
    '''
    赋值语句代码等价于
    cou[i]=0
    cou[i}=cou[i]+1
    '''
print(cou)

输出结果:

{'aa': 2, 'b': 1, 'c': 1, 'ddd': 1}

get()函数在这里有两个参数,第一个是确定要分配值的键,第二个是拟定给键分配一个初值,但实际要给键赋值仍需要get赋值语句(为什么这么说下面有介绍)

比如说我现在添加这个语句到代码中

cou.get('b',10)   #之后称为拟定初值语句

拟定初值语句本身对结果是没有影响的,因为并没有实际的对键进行赋值语句操作(个人感觉拟定初值语句是因为没有在字典中找到要赋值的键,因为根本没有创建要赋值的键,因此赋值失败,即相当于一个没有返回值的函数,就算给这个函数赋参数了也没有任何返回结果)

注:get()函数在作为键赋值语句(非拟定赋值语句,区别看上代码框内注释)时只有第一次是有效的,(比如get()函数在第一次对’aa’这个键使用get赋值语句后下次再使用get赋值语句时键的值仍为第一次赋值运算后的结果),以下为测试代码:

ls=['aa','b','c','ddd','aa']
cou={} #创建一个空字典
for i in ls:
    cou[i]=cou.get(i,0)+1  #功能逻辑看下方阐述
cou['aa']=cou.get('aa',10)  #功能同前一条代码执行到第二次时的
print(cou)

这里着重讲一下第4行代码:cou[i]=cou.get(i,0)+1

第行代码从逻辑上讲执行了两次,而这两次里get语句每次执行时的功能是不一样的:

第一次:cou[i]=cou.get(i,0)+1(i=‘aa’)

此时get语句的功能为赋初值,即把键’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[i]+1

输出结果和之前的代码结果相同:

{'aa': 2, 'b': 1, 'c': 1, 'ddd': 1}

当单独使用get赋值语句时如果键是第一次出现的话,效果等同赋值语句(和之前在空字典里通过for循环建立新键值对效果一样)

cou['e']=cou.get(e,10) 

输出结果:

```python
{'aa': 10, 'b': 1, 'c': 1, 'ddd': 1,'e':10}

顺带一提如果想直接改变字典中键的值时可用如下方法:

cou['aa']=10  #这种赋值语句带有强制性
print(cou)

输出结果:

{'aa': 10, 'b': 1, 'c': 1, 'ddd': 1}

补充:和dict[key]的区别

dict.get(key)和dict[key]在key值存在的情况下,都能得到对应的键值。但是当使用dict[key]时,key必须要存在,否则会报错。但是dict.get[key]中的key可以不存在,因为get方法有一个默认的参数None,当key不存在的时候,返回None。

总结

到此这篇关于python字典中get()函数基本用法的文章就介绍到这了,更多相关python字典get()函数用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯