2 回答

TA貢獻1831條經驗 獲得超10個贊
你得到一維數組作為結果,因為你有addingArray一個簡單的列表。因此,您遍歷了您的所有元素multiArray并向其添加 1,然后將結果附加到列表中。
出于效率原因,建議對數組使用 NumPy。然后,您可以簡單地使用廣播為數組的每個元素添加值。下面是一個例子:
# input array
In [180]: multiArray = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# add 1 to each value of the array
In [181]: multiArray + 1
Out[181]:
array([[ 2, 3, 4],
[ 5, 6, 7],
[ 8, 9, 10]])
如果出于某些原因你確實想要一個普通的 python 列表作為結果,你可以簡單地將它轉換為一個:
In [182]: (multiArray + 1).tolist()
Out[182]: [[2, 3, 4], [5, 6, 7], [8, 9, 10]]

TA貢獻1829條經驗 獲得超13個贊
指數迭代
你需要有一個內部列表來獲取內部結果,并使用 訪問好的值multiArray[i][j],也不要使用常量3習慣使用對象長度
addingArray=[]
for i in range(len(multiArray)):
innerArray = []
for j in range(len(multiArray[i])):
innerArray.append(multiArray[i][j]+1)
addingArray.append(innerArray)
print(addingArray) # [[2, 3, 4], [5, 6, 7], [8, 9, 10]]
值迭代
您也可以直接遍歷 arra 以簡化并且不要同時使用索引
addingArray=[]
for inner in multiArray:
innerArray = []
for value in inner:
innerArray.append(value+1)
addingArray.append(innerArray)
列表理解
并用列表理解語法縮短它
multiArray = [[v+1 for v in inner] for inner in multiArray]
print(multiArray) # [[2, 3, 4], [5, 6, 7], [8, 9, 10]]
添加回答
舉報