首页 > 编程语言 >简单介绍Python中如何给字典设置默认值

简单介绍Python中如何给字典设置默认值

时间:2023-03-04 23:31:59浏览次数:37  
标签:aa defaultdict get Python key 默认值 hello 字典

这篇文章主要介绍了Python中如何给字典设置默认值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python字典设置默认值

我们都知道,在 Python 的字典里边,如果 key 不存在的话,通过 key 去取值是会报错的。

>>> aa = {'a':1, 'b':2}
>>> aa['c']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'c'

如果我们在取不到值的时候不报错而是给定一个默认值的话就友好多了。

初始化的时候设定默认值(defaultdict 或 dict.fromkeys)

>>> from collections import defaultdict
>>> aa = defaultdict(int)
>>> aa['a'] = 1
>>> aa['b'] = 2
>>> aa
defaultdict(, {'a': 1, 'b': 2})
>>> aa['c']
0
>>> aa
defaultdict(, {'a': 1, 'b': 2, 'c': 0})
>>> aa = dict.fromkeys('abc', 0)
>>> aa
{'a': 0, 'b': 0, 'c': 0}

defaultdict(default_factory) 中的 default_factory 也可以传入自定义的匿名函数之类的哟。

>>> aa = defaultdict(lambda : 1)
>>> aa['a']
1

获取值之前的时候设定默认值(setdefault(key, default))

这里有个比较特殊的点:只要对应的 key 已经被设定了值之后,那么对相同 key 再次设置默认值就没用了。

因此,如果你在循环里边给一个 key 重复设定默认值的话,那么也只会第一次设置的生效。

>>> aa = {'a':1, 'b':2}
>>> aa
{'a': 1, 'b': 2}
>>> aa.get('c')
>>> aa.setdefault('c', 'hello')
'hello'
>>> aa.get('c')
'hello'
>>> aa
{'a': 1, 'b': 2, 'c': 'hello'}
>>> aa.setdefault('c', 'world')
'hello'
>>> aa.get('c')
'hello'

获取值的时候设定默认值(dict.get(key, default))

>>> aa = {'a':1, 'b':2}
>>> aa
{'a': 1, 'b': 2}
>>> aa['c']
Traceback (most recent call last):
File "", line 1, in
KeyError: 'c'
>>> aa.get('c')
>>> aa
{'a': 1, 'b': 2}
>>> aa.get('c', 'hello')
'hello'
>>> aa.get('b')
2

python创建带默认值的字典

防止keyerror创建带默认值的字典

from collections import defaultdict
data = collections.defaultdict(lambda :[])

标签:aa,defaultdict,get,Python,key,默认值,hello,字典
From: https://blog.51cto.com/u_12148962/6100474

相关文章

  • python回顾
    重点!!!只记录了我感觉需要记得,还有大部分没有记录,希望可以去看网址-------⬇------网址python回顾and(&)or(|)#1.当用&与|用于数值计算时2&1将数值化为......
  • python版基于协同过滤算法的图书管理系统
    基于协同过滤算法的图书管理系统DEMOdemo传送门可以参考一、简介​ 本系统基于推荐算法给用户实现精准推荐图书。​ 根据用户对物品或者信息的偏好,发现物品或者内容......
  • Django --python manage
    Django--pythonmanage.pycollectstatic应用场景:线上部署(Linux)注意:执行时,需要与manag.py处于同一路径下作用:执行该命令时,将所有STATICFILES_DIRS中的所有文件夹......
  • python-httpx 发送http2.0时代请求
    原文,自己做个笔记用https://blog.51cto.com/u_15127674/3872190官方文档的地址https://www.python-httpx.org/我们在日常开发中,经常会发送各种各样的网络请求。Python......
  • python爬虫学习——xlwt库
    xlwt库主要是对excel进行操作,主要流程就是创建对象,创建工作表,写入数据,保存数据表。代码练习如下'''importxlwtworkbook=xlwt.Workbook(encoding="utf-8")#创建......
  • 在服务器上使用python虚拟环境
    在服务器上直接用pip安装python包会破坏系统python环境,因此要部署django之类的服务需要创建python虚拟环境(目标系统:Debian11)。1.安装pipapt-getinstallpython3-pip#......
  • python __new__()的理解
    最近在学python做接口自动化,在封装log模块时,老师没有继承logging模块,而是在自己封装的MyLogger类中的__new__方法中返回了一个logging对象自己封装的MyLogger类中就只......
  • python名称空间和作用域
    函数内部的函数只能在函数内部调用,不能在函数外部调用,通过接下来的学习你将会知道为什么会出现这种情况。deff1():deff2():print('fromf2')f2()f......
  • python 安装最新版3.11.2 for centos
    目录Python安装前的准备参考官方文档openssl下载地址openssl安装python的安装遇到的一些坑Python安装前的准备sudoyumupdate&&sudoyuminstall-yopenssl-deve......
  • Python常用工具
    Python基本概念PYTHONPATHpython装饰器__init__.py软件包管理Miniconda配置文件$cat~/.condarcssl_verify:falseshow_channel_urls:truechannels:-h......