【发布时间】:2017-06-27 17:13:15
【问题描述】:
我基本上是在尝试切换数组数组;我的初始数据是:
array = [
[0,0,0],
[1,1,1]
]
输出应该是:
[
[0,1],
[0,1],
[0,1]
]
然而我得到的是:
[]
我已经尝试在没有循环的情况下做同样的事情,但是当我介绍它们时它不会追加!
在此处查看代码:
array = [
[0,0,0],
[1,1,1]
]
transformedArray = []
#add rows to transformed
for j in range(0, len(array) - 1):
transformedArray.append([])
#for each row
for i in range(0, len(array[0]) - 1):
#for each column
for k in range(0, len(array) - 1):
transformedArray[i].append(array[k][i])
你能帮忙吗?我在网上没有发现任何类似的问题,所以我猜我错过了一些愚蠢的事情!
【问题讨论】:
-
请注意,当您执行
range(0, len(array[0]) - 1)时,您不会遍历每一行,因为range停止参数是专有的。不过,就目前而言,我相信无论如何您都会遇到索引错误,因为您混淆了“行”和“列”。 -
另外,执行 transpose 操作的惯用方式如下:
list(zip(*array))。只要我在挑剔,你就在使用 lists 而不是 arrays. -
@juanpa.arrivillaga 过了一会儿我想通了;我已经看了这么长时间了,现在一切都在我的脑海中混在一起!
标签: arrays list python-3.x for-loop