完美解决python遍历删除字典里值为空的元素报错问题

作者:jingxian 时间:2023-04-23 13:39:50 

exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' }

使用下列遍历的方法删除:

1. for e in exam:
2. if exam[e] == '':
3. del exam[e]

结果出现下列错误,怎么解决:


Traceback (most recent call last):
File "Untitled.py", line 3, in <module>
 for e in exam:
RuntimeError: dictionary changed size during iteration

正确做法:

1. s = {"1":a,"2":b,"3":c,"4":d,"5":e}
2. s_key = list(s.keys())
3. for k_s in s_key:

4.#比如我要删除第四个元素

5.del s["4"]

只是在for循环中,相当于对链表的操作,它会自动调用next方法!

字典的迭代器会遍历它的键,在这个过程中,不能改变这个字典!不能删除、添加数据

要先记录要删除的元素的索引,遍历完后再删除,exam.keys()返回的是一个独立的列表

标签:python,遍历,字典
0
投稿

猜你喜欢

  • MySQL主从复制问题总结及排查过程

    2024-01-15 07:05:44
  • python的numpy模块实现逻辑回归模型

    2022-10-01 07:05:59
  • 如何用mysql自带的定时器定时执行sql(每天0点执行与间隔分/时执行)

    2024-01-16 01:58:31
  • Tensorflow:转置函数 transpose的使用详解

    2021-01-17 20:36:37
  • python根据txt文本批量创建文件夹

    2021-12-18 21:24:52
  • 解析MYSQL显示表信息的方法

    2024-01-15 12:17:49
  • Python爬虫框架之Scrapy中Spider的用法

    2023-10-04 10:38:21
  • python实现整数序列求和

    2023-12-14 06:53:10
  • windows python3安装Jupyter Notebooks教程

    2023-04-13 12:56:16
  • python实现猜单词游戏

    2023-01-22 22:32:43
  • 2019 Python最新面试题及答案16道题

    2022-07-01 03:04:49
  • Python实现数通设备端口使用情况监控实例

    2021-02-09 23:56:41
  • Python暴力破解Mysql数据的示例

    2024-01-23 17:29:37
  • 使用面向对象的技术创建高级JavaScript Web 应用程序

    2008-11-03 13:00:00
  • ASP 包含文件中的路径问题和使用单一数据库连接文件的解决方案

    2011-04-07 10:35:00
  • Oracle 跨库 查询 复制表数据 分布式查询介绍

    2024-01-24 23:56:08
  • Oracle临时表空间删除和重建实现过程

    2023-07-18 09:26:04
  • python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

    2023-05-25 23:48:29
  • pyqt5移动鼠标显示坐标的方法

    2023-06-09 22:37:30
  • 封装了一个js图片轮换效果的函数

    2024-06-21 20:21:48
  • asp之家 网络编程 m.aspxhome.com