Python不会附加到for循环列表中

时间:2017-06-27 17:13:15

标签: arrays list python-3.x for-loop

我基本上试图切换阵列数组;我的初步数据是:

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])
你可以帮忙吗?我没有在网上发现任何类似的问题,所以我猜我错过了一些愚蠢的东西!

2 个答案:

答案 0 :(得分:1)

尝试嵌套循环:

array = [
    [0,0,0],
    [1,1,1]
    ]
transformedArray = [[0,0],[0,0],[0,0]]

# iterate through rows
for i in range(len(array)):
   # iterate through columns
   for j in range(len(array[0])):
         transformedArray[j][i] = array[i][j]

for res in transformedArray:
     print(res)

返回:

[0, 1]
[0, 1]
[0, 1]

编辑添加说明

首先,列表在上面的代码中定义:aList = [ ... ]其中数组将被定义为anArray = numpy.array([...]),所以就上面的注释而言,这是 list 处理问题,而不是真正的python数组进程。接下来,元素将按索引添加到列表中,因此必须有一个放置它们的位置。我通过创建一个包含3个元素的列表来处理它。原始帖子只会创建前2行,然后在创建第3行时导致索引失败。嵌套的for循环然后迭代嵌入的列表。

答案 1 :(得分:0)

您可以通过在所有阵列上映射一系列索引访问操作来实现:

for i in range( len( array[0] ) ):
    transformedArray.append( map( lambda x: x[i], array ) )