2017-03-04 25 views
-1

我有这样的代码:与阵列邮编列表的字典不产生正确的结果

import sympy 
import numpy as np 

arr = [np.array([ 1, 2, 3, 4]), np.array([ 5, 6, 7, 8])] 
a,b = sympy.symbols('a b') 
var = [a,b] 

new_dict = dict(zip(str(var), arr)) 

而且我的输出是:

print(new_dict) 

{'[': array([1, 2, 3, 4]), 'a': array([5, 6, 7, 8])} 

代替:

{'a': array([1, 2, 3, 4]), 'b': array([5, 6, 7, 8])} 

我该如何解决这个问题?

回答

2

当您向str()发送一个列表时,它将该列表的表示形式表示为一个字符串,其中包括括号和逗号。你希望每个值的字符串表示在该列表:

new_dict = dict(zip(map(str, var), arr)) 

或者,更好的,因为var似乎反正持有字符串:

new_dict = dict(zip(var, arr))