为什么Python不操纵这个数组?

Edg*_*r P 1 python arrays

我有以下代码片段:

d = [[0,558,437,142,45,290], [558,0,232,500,600,523], [437,232,0,408,492,572], 
 [142,500,408,0,180,197], [45,600,492,180,0,254], [290,523,572,197,254,0]]

for row in d:
    for elem in row:
        elem = elem * 2
print d[0][1]
print '\n'
Run Code Online (Sandbox Code Playgroud)

为什么它不打印新值,它仍然打印558

Cod*_*ice 5

elem = elem * 2修改名为的变量的值elem.此变量与列表无关,而与列表元素的初始值无关.

要做你想做的事,你需要索引到数组中.或者,您可以使用该map()功能.但是,这只会创建一个包含新值的新列表,而不是更改原始列表的值.