在Python中更改2d数组值

时间:2014-12-10 16:28:13

标签: 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] = dict[arry[y][x]]

2 个答案:

答案 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