在Python中更改2d数组值

在Python中更改2d数组值,python,Python,我有一个数组的形状,叫做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] =

我有一个数组的形状,叫做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]]

这在我的机器上运行良好:

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变量,列表中的值用逗号分隔

>>> 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
>d=dict()
>>>d
{}
>>>dict={1:2,3:4}
>>>口述
{1: 2, 3: 4}
>>>d_new=dict()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“dict”对象不可调用

arry是如何声明的?arry需要输入的,如我所说,有没有输入这些命令的方法?请给我一个示例输入,您希望如何输入数组?使用空间分隔元素还是其他方式?plz提供输入?输入是我之前说过的,不知道为什么itI中没有逗号,我使用的是numpy数组