Python简单遍历字典及删除元素的方法

这篇文章主要介绍了Python简单遍历字典及删除元素的方法,结合实例形式分析了Python遍历字典删除元素的操作方法与相关注意事项,需要的朋友可以参考下

具体如下:

这种方式是一定有问题的:  
 

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

for key in d:

  d.pop(key)



会报这个错误:RuntimeError: dictionary changed size during iteration



这种方式Python2可行,Python3还是报上面这个错误。  
 

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

for key in d.keys():

  d.pop(key)



Python3报错的原因是keys()函数返回的是dict_keys而不是list。Python3的可行方式如下:  
 

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

for key in list(d):

  d.pop(key)

Python简单遍历字典及删除元素的方法的更多相关文章

  1. Python - 字典(dict)删除元素

    字典(dict)删除元素, 能够选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, ke ...

  2. 遍历List集合删除元素的出现报错

    遍历List集合删除元素的出现报错   遍历List集合删除元素的时候会发生索引越界异常或内容遍历不全等问题. 例子: List<String> al = new ArrayList< ...

  3. 34-python基础-python3-列表删除元素-remove()方法-del语句-pop()方法

    1-remove()方法 根据值删除元素.  remove()方法传入一个列表中的值,它将从被调用的列表中删除. 如果该值在列表中出现多次,只有第一次出现的值会被删除. 如果要删除的值可能在列表中出现 ...

  4. (转载)php数组添加、删除元素的方法

    (转载)http://www.phpgs.com/html/php/phpjichu/20120130440.html 带来一篇php 数组 添加元素.删除元素的方法的文章,有需要的php学习者参考下 ...

  5. PHP从数组中删除元素的方法

    PHP从数组中删除元素的方法 本篇文章主要介绍了PHP从数组中删除元素的四种方法实例 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: 1 2 3 4 5 <?php   $ ...

  6. Python -- 修改、添加和删除元素

    大多数列表将是动态的,这意味着列表创建后,将随着程序的运行增删元素. 修改列表元素 修改列表元素的语法与访问列表元素的语法类似.要修改列表元素,可指定表名和要修改的元素指引,再指定该元素的新值. #代 ...

  7. python中List添加、删除元素的几种方法

    一.python中List添加元素的几种方法 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作).在Pytho ...

  8. python学习之【第六篇】:Python中的字典及其所具有的方法

    1.前言 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,因此,字典的key必须是可哈 ...

  9. 分析轮子(八)- List.java 各种遍历方式及遍历时移除元素的方法

    注:玩的是JDK1.7版本 1:先尝栗子,再分析,代码简单,注释清晰,可自玩一下 /** * @description:测试集合遍历和移除元素的方式 * @author:godtrue * @crea ...

随机推荐

  1. 希尔排序Shell_Sort

    概述:听到希尔排序这个名称,心里完全没有任何概念,因为这个名称不能给你提供任何有效的信息.但是它的名字又是那么的特殊,以至于学习过数据结构排序的都知道这种方法的存在.现在我们就来看一下所谓的希尔排序. ...

  2. xss之上传文件的xss,绕过csp,预警机制

    xss1.XSS姿势——文件上传XSS https://wooyun.x10sec.org/static/drops/tips-14915.html总结: 1.1.文件名方式,原理:有些文件名可能反应 ...

  3. 6-修改虚拟机的SID(sysprep)

    一.注意点 1.这种错误一般会出现在克隆的机器里,导致在加入域的时候,报SID一致,加入失败,如下图: 2.使用sysprep修改完之后,需要重启服务器,并且重新配置,重新配网络: 3.如果修改SID ...

  4. Codeforces Round #543 (Div. 1, based on Technocup 2019 Final Round) 题解

    题面戳这里 A. Diana and Liana 首先如果s>ks>ks>k一定无解,特判一下.那么我们考虑找恰好满足满足题目中的要求的区间[l,r][l,r][l,r],那么需要要 ...

  5. CodeForces 840B - Leha and another game about graph | Codeforces Round #429(Div 1)

    思路来自这里,重点大概是想到建树和无解情况,然后就变成树形DP了- - /* CodeForces 840B - Leha and another game about graph [ 增量构造,树上 ...

  6. Appium自动化测试教程-自学网-adb命令

    adb命令: adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信.它可为各种设备操作提供便利,如安装和调试应用. T ...

  7. 字节(byte)、二进制、字节流、字符流相关概念分析

    https://blog.csdn.net/changwilling/article/details/52065955 1.字节: 字(Byte)节是长度单位.位(bit)也是长度单位. 因为计算机通 ...

  8. kill/xkill/killall/pkill/pidof

    pidof 杀死进程的关键是找到进程id,杀错进程id是异常灾难, 使用ps -ef|grep 可以查看到相关进程的pid及ppid 可以直接kill掉ppid,其子进程也都会被杀死 也可以使用pid ...

  9. Git Clone 的时候遇到 Filename too long 错误

    在对某些仓库进行 Git Clone 的时候遇到了 Filename too long 的错误提示. 错误提示如下图: 可以有下面的一些解决办法: 可以有下面的一些解决办法: 在 Git bash 中 ...

  10. 「CF716D」Complete The Graph「最短路」

    题意 给定一个\(n\)个点\(m\)条边的无向图,有一些边权暂时为\(0\),你需要分配一个\([1, 10^{18}]\)的数.最终使得\(s\)到\(t\)最短路为\(L\),输出一个可行的分配 ...