我有以下嵌套列表:
grid = [[a, b, c, d, e],
[f, g, h, i, j],
[k, l, m, o, p]]
在for循环中,我想取每个子列表的第n个元素,并将其附加到一个一维列表中。所以在第一次迭代时,它看起来是这样的:
[a, f, k]
在下一次迭代中,它看起来是这样的:
[b, g, l]
等等
我之所以想这样做,只是因为我想将这个列表创建到另一个现有的常量列表中。以下是我的尝试,但它只创建每个子列表的最后一个元素的垂直列表:
for j in range(0, len(grid)):
column_list = [item[j] for item in grid]
下面应该这样做:
list_ = [['a',' b', 'c', 'd', 'e'],
['f', 'g','h', 'i', 'j'],
['k', 'l', 'm',' o', 'p']]
[list(tup) for tup in zip(*list_)]
这将产生:
[['a', 'f', 'k'],
[' b', 'g', 'l'],
['c', 'h', 'm'],
['d', 'i', ' o'],
['e', 'j', 'p']]
嵌套循环
使用nested loops
:可以轻松完成
list = [['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'j'],
['k', 'l', 'm', 'o', 'p']]
i=0
j=0
while(j < len(list[0])):
i=0
vert =[]
while ( i < len(list)):
vert.append(list[i][j])
i += 1
j +=1
print(vert)
前哨是:
['a', 'f', 'k']
['b', 'g', 'l']
['c', 'h', 'm']
['d', 'i', 'o']
['e', 'j', 'p']
最简单的方法是使用numpy:
grid = np.array(grid)
print (grid[:, 0]) # a, f, k
print (grid[:, 1]) # b, g, l
网格迭代:
data = [grid[:, i] for i in range(len(grid[0]))]
你可以添加:
data = [list(grid[:, i]) for i in range(len(grid[0]))]
如果它肯定是一个列表。