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]]
添加回答
举报
