在 for 循环中出现 Dict KeyError 但实际上没有错误

虽然我有一个包含 236 个项目的字典detected_intersections列表用代码:

for i in detected_intersections:
    print(i)

看起来像:

示例图像

带代码:

detected_intersections = detect_intersections()
for i in detected_intersections:
    if 'seq' in i:
       print(i)

它看起来和上面一样:

示例图像

但是当我使用del 语句pop() 方法删除for 循环中的 key seq时,就会出现 KeyError:

示例图像

示例图像

如果使用代码:

for i in detected_intersections:
    if 'seq' in i:
        i.pop('seq')
        print(i)

代码会编译成功,但数据丢失:

示例图像

我很确定列表的每个项目中都有seq并且它们的情况是正确的,我很困惑为什么会发生这种情况。

谢谢

虎222

如果其中一个dict没有seq密钥,您将拥有KeyError. 您可以通过为 提供默认返回值来防止这种情况pop()

i.pop("seq", None)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:默认dict键以避免KeyError

self .__ dict__返回keyError

默认dict键以避免KeyError

如何在“ while”循环中出现错误后返回特定点

尝试从嵌套的Manager.dict访问键值时出现KeyError

KeyError:dict中的nan

循环中出现plt.savefig错误

PHP CURL循环中出现400错误

对dict理解中的locals()下标失败,并出现KeyError

打字稿。如何避免在foreach循环中出现此错误:“算术运算的左侧必须为'any','number'或枚举类型”?

执行dict [k]时,由dict.keys()返回的密钥k导致KeyError:现有密钥上的KeyError

GLSL:由于非常量表达式初始化,For循环中出现错误

如何避免Postgresql的FOR循环中出现语法错误?

在while循环中编辑int时在C中出现分段错误

不应在for循环中出现值错误?

为什么在低通滤波器循环中出现IndexOutOfBoundsException错误?

在执行if循环中的if else条件时,codebuild中出现错误

安装模块KeyError时出现Odoo错误

在foreach循环中出现“使用未分配的局部变量”错误,并返回收益

在后台将输出重定向到文件时,for循环中出现语法错误

在执行循环中出现错误

查找哈希表的值时,while循环中出现C ++分段错误

set / a在循环中出现错误

使用“长度”在头文件的 For 循环中出现错误 C867

简单的 for 循环中出现意外的令牌错误?

在 for 循环中添加 if 语句会导致“在“}”中出现“意外的 '}””错误

为什么在此 Python 代码中出现 KeyError 错误?

在数据帧的简单循环中出现奇怪的不支持操作错误

为什么在 SQL Server While 循环中出现错误?