[译]如何在迭代字典的过程中删除其中的某些item(Python)
最好不要在迭代的过程中删除。你可以使用解析式和filter过滤。
比方说:
{key:my_dict[key] for key in my_dict if key !="deleted" }
这叫做字典解析式。它在不删除键的情况下创建了一个新的字典。在大多数情况下更推荐用这种方法。
如果你担心内存消耗,你可以将旧的引用指针指向新构造好的字典。
比方说:
my_dict = {k:my_dict[k] for k in my_dict if k != "deleted"}
这种方法能够确保旧的字典的引用计数会减1。如果没有其他的引用指向旧的字典,不就它就会被垃圾回收机制收回。
[译]如何在迭代字典的过程中删除其中的某些item(Python)的更多相关文章
- 遍历List过程中删除元素的正确做法(转)
		
遍历List过程中删除元素的正确做法 public class ListRemoveTest { 3 public static void main(String[] args) { 4 ...
 - 【译】在ASP.Net和IIS中删除不必要的HTTP响应头
		
引入 每次当浏览器向Web服务器发起一个请求的时,都会伴随着一些HTTP头的发送.而这些HTTP头是用于给Web服务器提供一些额外信息以便于处理请求.比如说吧.如果浏览器支持压缩功能,则浏览器会发送A ...
 - 遍历List过程中删除操作报java.util.ConcurrentModificationException错误
		
1:遍历List 同时 remove 元素,出现java.util.ConcurrentModificationException错误 @Test public void test3(){ List& ...
 - map在遍历数据的过程中删除数据不出错
		
// Iterator<Map.Entry<String,Long>> entries = Map.entrySet().iterator(); ...
 - [译]如何根据条件从pandas DataFrame中删除不需要的行?
		
问题来源:https://stackoverflow.com/questions/13851535/how-to-delete-rows-from-a-pandas-dataframe-based-o ...
 - 【虚拟机】oracle Virtual Box4.2.6虚拟机正在运行的过程中删除了其上的一个备份,之后虚拟机就无法使用了
		
原因未知,解决方法没有,网上也没有找到相关的解决方法.偶然的操作导致
 - 遍历std::list过程中删除元素后继续遍历过程
		
std::list::erase Erase elements Removes from the list container either a single element (position) o ...
 - Python中if __name__=="__main__" 语句在调用多进程Process过程中的作用分析
		
2018年2月27日 于创B515 引言 最近准备学习一下如何使用Python中的多进程.在翻看相关书籍.网上资料时发现所有代码都含有if __name__=="__main__" ...
 - STL在迭代的过程中,删除指定的元素
		
直接上Code,上 Picture #include <iostream> #include <list> using namespace std; // STL在迭代的过程中 ...
 
随机推荐
- 深度探索C++对象模型——关于对象
			
引言 以前读<C++ Primer>的时候一直有一种感觉:该书虽然是C++入门书籍,初学者读之却觉晦涩,越往后读越是如此.等到稍加理解后再读该书,顿感醍醐灌顶,茅塞顿开.究其原因,在于原作 ...
 - (转载)WPF:DataGrid设置行、单元格的前景色
			
WPF:DataGrid设置行.单元格的前景色 0. 说明 /********************************** 本示例实现功能1.DataGrid基本操作2.列标题样式3.内容居中 ...
 - github上fork原项目,如何将本地仓库代码更新到最新版本?
			
场景: 在github上fork原项目,项目组成员发起pull request提交了代码,这时自己在本地仓库该如何更新到最新代码? 操作方法如下: 方法一.从github上进行操作然后更新 登录自己的 ...
 - ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)
			
一. 需求背景: 在我们使用ansible的过程中经常会遇到这样的情况,我们要管理的机器都在内网中,这些内网机器的登录都是通过跳板机或者堡垒机登录.我们的ansible机器不能直接管理到这些后端的机器 ...
 - nfs-ganesha使用
			
一 nfs-ganesha在centos7上安装 yum -y install centos-release-gluster yum install -y nfs-ganesha.x86_64yum ...
 - 实验1  c语言最基本内容
			
part 1 验证性内容 总结:经受了数组和结构体的双重折磨后,发现这部分好简单...现在没啥问题了... part 2 补全程序 1.判断奇偶 // 程序功能: // 要求用户从键盘输入一个整数 ...
 - 关于"动态语言"  "静态语言"  "静态类型语言"  "动态类型语言"的区别
			
参考链接:关于“编译型”“解释型”“动态语言”“静态语言”“动态类型语言”“静态类型语言”的区分以及优缺点(汇总整理) 很多人把这两类混为一谈,但是这是完全不同的两个概念!!! 动态和静态语言主要看的 ...
 - module.exports exports 和export  export default
			
首先可以知道的是这是两组不同模块规范. module.exports 是CommonJS模块规范,通过require 导入 a.js: var x = 'hello' module.exports.x ...
 - linux下GPIO的用户层操作(sysfs)
			
linux的GPIO通过sysfs为用户提供服务,下面是linux kernel里的说明文档,学习一下. GPIO Sysfs Interface for Userspace ============ ...
 - Python学习笔记:xlrd和xlwt(Excel读写)
			
xlrd模块 Python的三方库xlrd用于对excel文件进行读取,可以是“.xls”或“.xlsx”格式(旧版本可能不支持“.xlsx”). 下载安装:https://pypi.org/proj ...