2013-03-03 166 views
0

我有一个空的“numpy.ndarray”Python中创建一个字典,“numpy.ndarray”

import numpy as np 
my_grid = np.zeros((5, 5)) 

parse = "max","min","avg" 

我想创建一个字典,其中解析的每个元素的“钥匙”

收藏导入defaultdict

GridMetric = dict() 
for arg in parse: 
    GridMetric[arg].append(my_grid) 

,但我得到这个错误

Traceback (most recent call last): 
    File "<editor selection>", line 3, in <module> 
KeyError: 'max' 
+0

你不能使用numpy数组作为字典的键(就像不能使用列表或其他可变对象一样)。 – 2013-03-03 17:21:06

+0

你会给出一个*确切的*代码产生这个错误,以便我们看到这里'parse'到底是什么。 – 2013-03-03 17:26:54

+0

是否要为“每个解析元素”创建一个单独的字典?或者您想创建字典,解析中的项是键,值是...什么? – ASGM 2013-03-03 17:30:32

回答

2

如果你想要的是一本字典的键是所谓的解析和列表的不同元素,其价值都是相同的阵列,那么你的代码以下更改应该工作:

import numpy as np 
my_grid = np.zeros((5, 5)) 

parse = ["max","min","avg"] 

d = {} 
for arg in parse: 
    d[arg] = my_grid 
+0

不抱歉你不明白。 – 2013-03-03 17:42:28

+1

这段代码有什么问题?当我写下“每个键(列表的不同元素,解析)都会有相同的值(相同的数组,my_grid)时,你说”你明白了吗?“提供的代码以什么方式不适合你? – ASGM 2013-03-03 17:43:43

+0

我得到总是回溯(最近通话最后一个): 文件“<编辑选择>”,3号线,在 KeyError异常:“最大” becose我需要解析为“最大”,“最小”,“平均” – 2013-03-03 17:43:58