我写了这段代码,但它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)
[][]是无效的语法.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首先要学习更常见的类型是个好主意.)
| 归档时间: |
|
| 查看次数: |
6800 次 |
| 最近记录: |