我有一个像这样的数组的形状,叫做arry
[[1 2 3]
[4 3 1]
[2 2 3]]
我希望用字母
替换这些值dict = {1:'x',2:'y',3:'x',4:'y'}
for x in xrange (3):
for y in xrange (3):
a = dict[arry[y][x]]
arry[y][x].fill(a)
但是我得到基数为10的long()的错误无效文字:' n' 为什么是这样? 我也试过了
arry[y][x] = dict[arry[y][x]]
答案 0 :(得分:1)
这在我的机器上运行良好:
arry = [[1, 2, 3], [4, 3, 1], [2, 2, 3]]
dict = {1:'x',2:'y',3:'x',4:'y'}
for x in xrange (3):
for y in xrange (3):
arry[y][x] = dict[arry[y][x]]
print arry
我猜你错误地初始化了arry变量,列表中的值是用逗号分隔的。
答案 1 :(得分:0)
>>> array=[[1, 2, 3], [4, 3, 1], [2, 2, 3]]
>>> ref_dict = {1:'x',2:'y',3:'x',4:'y'}
>>> print [map(lambda x:ref_dict[x], l) for l in array]
[['x', 'y', 'x'], ['y', 'x', 'x'], ['y', 'y', 'x']]
您不应将dict
声明为字典名称,因为您将覆盖dict类的行为。
>>> d = dict()
>>> d
{}
>>> dict = {1:2, 3:4}
>>> dict
{1: 2, 3: 4}
>>> d_new = dict()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable