python 字典key 检查,python keyerror列名报错,解决Python字典查找报Keyerror的问题

python 字典key 检查,python keyerror列名报错,解决Python字典查找报Keyerror的问题

本文主要介绍了如何解决在Python字典中查找Keyerror的问题,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。

Python字典一般直接查找key,比如

dict={'a':1,' b':2,' c':3}

print(字典['a'])

但是如果在查找的key不存在的时候就会报:KeyError:

例如,如果你想检查打印(字典['d'])

这个时候dict里就没有这个键了,所以会直接报错。这个时候python其实给我们提供了一个很棒的解决方案,就是用

setdefault,用法如下: dict.setdefault(key,[这里设置如果不存在想将值设置为啥,默认为None])

那么这里我们可以用此方法解决:

print(dict.setdefault('d ',0))

那就没有问题了。注意,当你想给dict添加一个新值时,setdefault将使用这个函数。如果你只是想做一个搜索,遇到键不存在或者想通过这个键读取值时得到一个默认值,那么建议使用defaultdict。

首先我们来介绍一下所谓的defaultdict,它来自于collections模块。collections是一个集合模块,defaultdict(function_factory)构建了一个类似于dictionary的对象,其中key的值是自己赋值的。但是值类型是function_factory的类实例,它有一个默认值。这里还引入一个概念,就是python中的factory function是指那些内置的函数是类对象,当你调用它们的时候,实际上是创建了一个类实例。

如int()、str()、set()等。这里我们来看下面的例子:

导入收藏

s=[('黄色',1),('蓝色',2),('黄色',3),('蓝色',4),('红色',1)]

d=collections.defaultdict(list)

对于k,s中的v:

d[k]。追加(v)

打印(d['黄色'])

打印(d['白色'])

打印(列表(d.items()))

我们的最终输出结果如下:

我们可以看到,当D中没有对应的键时,最终返回的是一个空列表。那是因为我们在设置defaultdict时使用的工厂函数是list,List的默认值是空列表。让我们看看如果设置了工厂函数()会是什么样子

导入收藏

s=[('黄色',1),('蓝色',2),('黄色',3),('蓝色',4),('红色',1)]

d=collections.defaultdict(集合)

对于k,s中的v:

d[k]。添加(五)

打印(d['黄色'])

打印(d['白色'])

打印(列表(d.items()))

输出如下所示:

补充:python报错出现 KeyError: 'longitude'

python报错出现 KeyError: ‘longitude'

错误界面如下图所示:

我在网上寻找方法,我确实找到了一个解决方案:一个可能对你有用的解决方案。

但是我试了试却没有效果,于是我定睛一看,发现又是我的粗心。啊,如下图,经度前面少了一个逗号。

如下图:

所以这个问题就解决了。好的,我继续我的课程设计。

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: