Syn*_*ter 38 python multidimensional-array
我想知道如何在Python中声明二维数组.
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
Run Code Online (Sandbox Code Playgroud)
前两个任务工作正常.但是当我尝试这样做时arr[1].append("bb1"),我收到以下错误:
IndexError: list index out of range.
Run Code Online (Sandbox Code Playgroud)
我在尝试宣布2-D阵列时做了什么傻事?
编辑:
但我不知道数组中的元素数量(行和列).
Thi*_*ter 67
你没有在Python中"声明"数组或其他任何东西.您只需分配一个(新)变量.如果需要多维数组,只需添加一个新数组作为数组元素.
arr = []
arr.append([])
arr[0].append('aa1')
arr[0].append('aa2')
Run Code Online (Sandbox Code Playgroud)
要么
arr = []
arr.append(['aa1', 'aa2'])
Run Code Online (Sandbox Code Playgroud)
Dav*_*ebb 56
在Python中没有多维数组,你拥有的是包含其他列表的列表.
>>> arr = [[]]
>>> len(arr)
1
Run Code Online (Sandbox Code Playgroud)
您所做的是声明包含单个列表的列表.因此arr[0]包含列表但arr[1]未定义.
您可以定义包含两个列表的列表,如下所示:
arr = [[],[]]
Run Code Online (Sandbox Code Playgroud)
或者,您可以定义更长的列表:
>>> arr = [[] for _ in range(5)]
>>> arr
[[], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)
你不应该做的是:
arr = [[]] * 3
Run Code Online (Sandbox Code Playgroud)
因为这会在容器列表的所有三个位置放置相同的列表:
>>> arr[0].append('test')
>>> arr
[['test'], ['test'], ['test']]
Run Code Online (Sandbox Code Playgroud)
Bru*_*uno 19
你在这里使用的不是数组,而是列表(列表).
如果您想在Python中使用多维数组,则可以使用Numpy数组.你需要提前知道形状.
例如:
import numpy as np
arr = np.empty((3, 2), dtype=object)
arr[0, 1] = 'abc'
Run Code Online (Sandbox Code Playgroud)
您尝试附加到数组中的第二个元素,但它不存在。创造它。
arr = [[]]
arr[0].append("aa1")
arr[0].append("aa2")
arr.append([])
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
309427 次 |
| 最近记录: |