python Manager 之dict KeyError问题的解决
程序需要多进程见共享内存,使用了Manager的dict。
最初代码如下:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d['a1']['a2'] = 11</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
结果报错:
print d['a1']['a2'] KeyError: 'a2'
解决方案:
from multiprocessing import Process, Manager
d = Manager().dict()
d2 = {}
def f():
d['a1'] = {}
<span style="color:#ff6666;"> d2['a2'] = 11
d['a1'] = d2</span>
print d['a1']['a2']
if __name__ == '__main__':
p = Process(target=f)
p.start()
p.join()
以上这篇python Manager 之dict KeyError问题的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
新手常见6种的python报错及解决方法
此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们. 1.NameError变量名错误 报错: >>> print a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined 解决方案:
-
python修改字典键(key)的方法
python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现. 新建空白字典. info = {} 给字典添加键-值对. info["x"] = 1.5 info["y"] = 2 info 字典的键(key)不支持直接修改.如图,试图直接修改键会报错. info = {"x":1.5 ,"y":2} info["z"] = info("x&qu
-
python 字典修改键(key)的几种方法
python中获取字典的key列表和value列表 # -*- coding: utf-8 -*- # 定义一个字典 dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': 3, '喜剧': 2, '冒险': 2, '悬疑': 2, '惊悚': 2, '奇幻': 1} #通过list将字典中的keys和values转化为列表 keys = list(dic.keys()) values = list(dic.values()) # 结果输出 print("keys列表
-
详解解决Python memory error的问题(四种解决方案)
昨天在用用Pycharm读取一个200+M的CSV的过程中,竟然出现了Memory Error!简直让我怀疑自己买了个假电脑,毕竟是8G内存i7处理器,一度怀疑自己装了假的内存条....下面说一下几个解题步骤....一般就是用下面这些方法了,按顺序试试. 一.逐行读取 如果你用pd.read_csv来读文件,会一次性把数据都读到内存里来,导致内存爆掉,那么一个想法就是一行一行地读它,代码如下: data = [] with open(path, 'r',encoding='gbk',errors
-
python Manager 之dict KeyError问题的解决
程序需要多进程见共享内存,使用了Manager的dict. 最初代码如下: from multiprocessing import Process, Manager d = Manager().dict() d2 = {} def f(): d['a1'] = {} <span style="color:#ff6666;"> d['a1']['a2'] = 11</span> print d['a1']['a2'] if __name__ == '__main_
-
解决Python字典查找报Keyerror的问题
Python的字典一般都直接查找key ,比如 dict={'a':1,'b':2,'c':3} print(dict['a']) 但是如果在查找的key不存在的时候就会报:KeyError: 比如你要查看print(dict['d']) 由于这个时候dict里面并没有这个key ,所以就会直接报错,那么这个时候其实python给我们提供了一种很棒的解决方法,那就是用 setdefault,用法如下: dict.setdefault(key,[这里设置如果不存在想将值设置为啥,默认为None])
-
解决Python获取字典dict中不存在的值时出错问题
描述:Python2.7中如果想要获取字典中的一个值,但是这个值可能不存在,此时应该加上判断: 举个例子: t= {} if t.get('1'): # right:这种通过key来查询是否存在的方式是比较好的 print(t['1']) print('right') if t['1']: # wrong:这种直接判断是否存在的方式因为会在判断之前调用,所以会报错 print(t['1']) 额外说明: dict.get(key, default=None) 方法详解: Parameters:
-
Python里的dict和set的背后小秘密
目录 Python里的dict和set的效率有多高? 字典中的散列表 1.散列值和相等性 散列表算法 dict的实现及其导致的结果 1.键必须死可散列的 2.字典在内存上的开销巨大 3.键查询很快 4.键的次序取决于添加顺序 5.往字典里添加新键可能会改变已有键的顺序 set的实现及其导致的结果 总结 Python里的dict和set的效率有多高? 为什么它们是无序的? 为什么并不是所有的Python对象都可以当作dict的键或set里的元素? 为什么dict的键和set的元素的顺序是根据它们被
-
在Python中使用dict和set方法的教程
dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长. 如
-
Python基础之dict和set的使用详解
目录 dict set 再议不可变对象 小结 dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list: name = ['Micael','Bob','Tracy'] scores = [95.75,85] 给定一个名字,要查找对应的成绩,就先要在names种找到对应的位置,在从scores取出对应的
-
python通过字典dict判断指定键值是否存在的方法
本文实例讲述了python通过字典dict判断指定键值是否存在的方法.分享给大家供大家参考.具体如下: python中有两种方法可以判断指定的键值是否存在,一种是通过字典对象的方法 has_key 判断,另外一种是通过 in 方法,下面是详细的范例. d={'site':'http://www.jb51.net','name':'jb51','is_good':'yes'} #方法1:通过has_key print d.has_key('site') #方法2:通过in print 'body'
-
Python基于回溯法子集树模板解决0-1背包问题实例
本文实例讲述了Python基于回溯法子集树模板解决0-1背包问题.分享给大家供大家参考,具体如下: 问题 给定N个物品和一个背包.物品i的重量是Wi,其价值位Vi ,背包的容量为C.问应该如何选择装入背包的物品,使得放入背包的物品的总价值为最大? 分析 显然,放入背包的物品,是N个物品的所有子集的其中之一.N个物品中每一个物品,都有选择.不选择两种状态.因此,只需要对每一个物品的这两种状态进行遍历. 解是一个长度固定的N元0,1数组. 套用回溯法子集树模板,做起来不要太爽!!! 代码 '''0-
-
Python基于回溯法子集树模板解决取物搭配问题实例
本文实例讲述了Python基于回溯法子集树模板解决取物搭配问题.分享给大家供大家参考,具体如下: 问题 有5件不同的上衣,3条不同的裤子,4顶不同的帽子,从中取出一顶帽子.一件上衣和一条裤子作为一种搭配,问有多少种不同的搭配? 分析 换个角度看,现有头.身.腿三个元素,每个元素都有各自的几种状态. 头元素有['帽1', '帽2', '帽3', '帽4']共4种状态,身元素有['衣1', '衣2', '衣3', '衣4', '衣5']共5种状态,腿元素有['裤1', '裤2', '裤3']共3种状
-
Python基于回溯法子集树模板解决数字组合问题实例
本文实例讲述了Python基于回溯法子集树模板解决数字组合问题.分享给大家供大家参考,具体如下: 问题 找出从自然数1.2.3.....n中任取r个数的所有组合. 例如,n=5,r=3的所有组合为: 1,2,3 1,2,4 1,2,5 1,3,4 1,3,5 1,4,5 2,3,4 2,3,5 2,4,5 3,4,5 分析 换个角度,r=3的所有组合,相当于元素个数为3的所有子集.因此,在遍历子集树的时候,对元素个数不为3的子树剪枝即可. 注意,这里不妨使用固定长度的解. 直接套用子集树模板.
随机推荐
- spring boot打包成可执行jar包
- 如何使用php绘制在图片上的正余弦曲线
- login.exe HGFS木马下载器的手动查杀方法
- Arrays.asList方法总结
- Java使用正则表达式删除所有HTML标签的方法示例
- Spring Boot中整合Spring Security并自定义验证代码实例
- JavaScript 判断浏览器是否支持SVG的代码
- Javascript点击其他任意地方隐藏关闭DIV实例
- 详解ASP.NET MVC的筛选器
- android编程实现电话录音的方法
- ThinkPHP发送邮件示例代码
- 基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
- myeclipse中连接mysql数据库示例代码
- html中的input标签的checked属性jquery判断代码
- .Net下执行sqlcmd的方法
- JavaScript设置IFrame高度自适应(兼容各主流浏览器)
- addEventListener()与removeEventListener()解析
- node.js中的emitter.on方法使用说明
- c语言链表操作示例分享
- Vue cli 引入第三方JS和CSS的常用方法分享
