美文网首页
不要在迭代字典的同时修改字典

不要在迭代字典的同时修改字典

作者: 伍只蚊 | 来源:发表于2018-02-23 14:33 被阅读53次

无论何时往字典里添加新的键,Python 解释器都可能做出为字典扩
容的决定。扩容导致的结果就是要新建一个更大的散列表,并把字
典里已有的元素添加到新表里。这个过程中可能会发生新的散列冲
突,导致新散列表中键的次序变化。要注意的是,上面提到的这些
变化是否会发生以及如何发生,都依赖于字典背后的具体实现,因
此你不能很自信地说自己知道背后发生了什么。如果你在迭代一个
字典的所有键的过程中同时对字典进行修改,那么这个循环很有可
能会跳过一些键——甚至是跳过那些字典中已经有的键。
由此可知,不要对字典同时进行迭代和修改。如果想扫描并修改一
个字典,最好分成两步来进行:首先对字典迭代,以得出需要添加
的内容,把这些内容放在一个新字典里;迭代结束之后再对原有字
典进行更新

相关文章

  • 不要在迭代字典的同时修改字典

    无论何时往字典里添加新的键,Python 解释器都可能做出为字典扩容的决定。扩容导致的结果就是要新建一个更大的散列...

  • Swift 02 字典

    字典 创建字典和创建数组一样创建同时就要制定key和value值的类型 字典的修改和增加 字典的删除 字典的遍历

  • 字典

    创建字典 访问字典中的值 修改、添加字典 修改字典中的值 在末尾增添新的键/值 删除字典元素 删除字典 清空字典 ...

  • 新2019计划:python学习-字典【4】

    字典 本篇章讲述数据结构字典,主要围绕如何访问字典,如何修改字典,如何删除字典某元素,如何遍历字典,字典的常见方法...

  • Python collections模块--OrderedDic

    OrderedDict 有序字典 字典是无序的,可以通过OrderedDict使其有序。当对字典做迭代时,它会严格...

  • Swift基础语法-字典--对比OC

    1. 定义字典 2. 字典操作 获取 修改 添加 删除 遍历字典

  • Python 学习笔记 - 字典

    Python 字典 字典是一种无序的、可修改的、可索引的容器。 字典使用花括号声明,具有键和值。 访问字典 修改元...

  • 迭代

    字典迭代 列表及元祖迭代 字符串迭代

  • python 字典

    字典 ❤ 创建使用花括号{};修改和添加元素的方法:字典名[字典的键]=值;删除元素:del 字典名[字典的键] ...

  • 2021-02-19 python 4-5章学习

    字典字典修改和新增操作删除 del 字典名 [键]和pop(item)和popitem()方法clear方法对字典...

网友评论

      本文标题:不要在迭代字典的同时修改字典

      本文链接:https://www.haomeiwen.com/subject/gerxxftx.html