[] []在Python中给出了一个SyntaxError

use*_*564 0 python

我写了这段代码,但它SyntaxError: invalid syntax在第一行出错了:

a =[][]
for i in range(3):
    for j in range(3):
        a[i][j] = i+j
Run Code Online (Sandbox Code Playgroud)

Mat*_*nen 6

[][]是无效的语法.Python中没有真正的多维数组,只有列表列表.此外,列表不会自动扩展到您向其投掷的任何索引.您必须使用例如append方法手动展开它们.

如果你想要一个"二维数组",首先要创建顶级列表:

a = []
Run Code Online (Sandbox Code Playgroud)

然后在循环中向其添加子列表

for i in range(3):
    row = []
    a.append(row)
    for j in range(3):
        row.append(i+j)
Run Code Online (Sandbox Code Playgroud)

有更简洁的方法来初始化这样的列表结构,但这是一种更接近您的代码的方式.

如果要快速将列表初始化为特定大小,可以*在列表中使用运算符:

>>> [0] * 5
[0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

如果你使用更复杂的类型作为项而不是数字或字符串,请小心; 您最终可能会得到一个列表,其中所有元素实际上都是对同一对象的引用.

(在有人指出存在提供多维数组的软件包之前numpy,我认为OP首先要学习更常见的类型是个好主意.)