用法详解——区分Python中的get、setdefault、defaultdict

一般应用场景

        这三个函数均可以对Python中的字典进行操作。我们知道,当我们需要查找字典中某个键对应的值时,会出现该键并不存在的情况,此时会返回一个KeyError。如dict[key]中,若key不存在则会返回KeyError。为了避免报错,我们就需要为字典当中的键值赋一个默认值。

         如上图,我们可以看到字典dict0中并没有键h,当我们试图打印其键h对应的value时,触发KeyError。

基本语法:

get(key,value)

setdefault(key,value)

defaultdict(可调用函数)

get()函数

        get()函数会为某个键赋默认值,而不改变字典本身。get()函数本质上是获取该键的值。当真实值并不存在时,则返回其默认值;当真实值的确存在时,则返回该键的真实值。如下图:

        我们可以很清晰地观察到打印出了键a对应的真实值和键h对应的默认值。

setdefault()函数

        setdefault()函数相较于get()函数,最直观的区别在于,setdefault函数为某个键赋默认值时,会直接改变字典本身。setdefault()函数本质上是对该键的值进行设置。当真实值存在时,则不改变真实值;当真实值不存在时,则设置该键值为setdefault()函数传递的参数。如下图:

        如图我们观察到a的value并没有变化,h的value赋值为3。

        观察上图代码,我们通过for循环遍历list1,然后为每个Key赋值Value为0,再在遍历中每一次遇见某个Key时为其Value加1,实现对list1中每个字符出现次数的统计。

defaultdict()函数

        defaultdict()函数归属于collections模块下,接受一个可调用的函数作为参数。该参数返回的类型是什么,defaultdict()函数就将该字典Key对应的Value设置为什么类型。比如default(list)则将该字典的Value设置为list类型。

        我们可以看到dict2这个字典的value属于list类型。接下来,我们尝试为dict2来赋值。

        我们首先为dict2设置一个空列表为其默认值,之后通过列表的append()函数来对该列表进行添加值。最终打印dict2。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值