Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python2D列表-更改元素后,不会更改打印输出_Python - Fatal编程技术网

Python2D列表-更改元素后,不会更改打印输出

Python2D列表-更改元素后,不会更改打印输出,python,Python,我用python创建了一个2d列表,并想更改一个元素。它工作得很好,但由于某些原因,使用两种不同的打印方式,我得到了两种不同的结果。通过打印整个数组,我得到了所需的零数组。通过显式打印出已更改的元素,我得到了不同的结果: m = 4 n = 3 a4 = [[0]*m for i in range(n)] for row in a4: for element in row: print(element, end=" ") print() print("###

我用python创建了一个2d列表,并想更改一个元素。它工作得很好,但由于某些原因,使用两种不同的打印方式,我得到了两种不同的结果。通过打印整个数组,我得到了所需的零数组。通过显式打印出已更改的元素,我得到了不同的结果:

m = 4
n = 3

a4 = [[0]*m for i in range(n)]

for row in a4:
    for element in row:
        print(element, end=" ")
    print()

print("####")
a4[0][0] = 1
print(a4[0][0])

for row in a4:
    for element in row:
        print(element, end=" ")
    print()

虽然在中间步骤中a4[0][0]已更改为1,但两个循环都在打印带零的3x4数组。为什么会这样?

我不太确定您是否正确打印,因为当您执行a4[I]时,我应该是未定义的。试一试:

m = 4
n = 3

a4 = [[0] * m for i in range(n)]

for zeile in a4:
    for element in zeile:
        print(element, end=" ")
    print()

print("####")
a4[0][0] = 1
print(a4[0][0])
print("####")

for zeile in a4:
    for element in zeile:
        print(element, end=" ")
    print()
输出:

0 0 0 0 
0 0 0 0 
0 0 0 0 
####
1
####
1 0 0 0 
0 0 0 0 
0 0 0 0 

第一个元素根据需要更改为1。

您必须在发布的代码块之前的某个地方定义i。循环在索引i处显示行。在代码块之前将i设置为0,它将显示您要查找的内容。

您所做的更改实际上没有问题。问题是您正在使用i编制索引,由于此行的原因,i设置为n-1:

a4 = [[0] * m for i in range(n)]
如果这样打印,您将看到更改实际上是正常的:

for row in a4:
    print row

print("####")
a4[0][0] = 1
print(a4[0][0])

for row in a4:
    print row
输出:

[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]
####
1
[1, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]

我在哪里声明和修改? 我不知道你想怎么做,但下面的代码对我来说很好

m = 4
n = 3

a4 = [[0]*m for i in range(n)]

for row in a4:
    for element in row:
        print(element, end=" ")
    print()

print("####")
a4[0][0] = 1
print(a4[0][0])

for row in a4:
    for element in row:
        print(element, end=" ")
    print()

我是什么?你们到底想要什么?对于a4中的元素[i]->对于第行中的元素