博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 里给字典设置默认值
阅读量:4228 次
发布时间:2019-05-26

本文共 1055 字,大约阅读时间需要 3 分钟。

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

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

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

初始化的时候设定默认值(defaultdict)

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

获取值之前的时候设定默认值(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

 

转载地址:http://fijqi.baihongyu.com/

你可能感兴趣的文章
一分钟整明白Tensorflow Extended
查看>>
人工智能再次参加高考:和作家比写作文,AI能打多少分?
查看>>
云创冬日紫金山踏雪游记
查看>>
西安思源学院电子信息工程学院院长张卫钢一行到访
查看>>
邀请函|欢迎参加2019云创大数据实验平台金融类/电子商务类/数学统计类院校各省总代理招募大会!...
查看>>
云创大数据的2018年!
查看>>
QNX简介
查看>>
MQTT协议基本介绍
查看>>
进程和线程是操作系统基本概念,了解一下
查看>>
SSL与TLS的区别以及介绍
查看>>
对象切割 - 常量引用传递
查看>>
北邮同学面经
查看>>
Effective C++条款16:成对使用new和delete时要采取相同形式
查看>>
sizeof与strlen
查看>>
一个递归+二分法的洗牌程序
查看>>
YUV格式注释
查看>>
一维、二维数组传参
查看>>
判断当前时间的下一秒是多少
查看>>
从文本文件中读取数据排序并输出到文本
查看>>
求一个整数数组中第二大的数
查看>>