将所有行转换为列和列转换为数组中的行

时间:2016-09-06 12:02:38

标签: python arrays

我正在尝试创建这个程序(在python中),它将所有行转换为列,将列转换为行。

更具体地说,第一个输入是2个数字。 select [G_L Account No_],cast(timestamp as bigint) from dbo.[Carlsberg India Pvt Ltd_$G_L Entry] where (cast([timestamp] as bigint)) >2238406010 NM - 总行数,N总列数。我用M。然后基于b=map(int, raw_input().split()),每个下一个b[0]行将包含N个空格分隔的整数。例如:

M

现在程序会将它存储在2D数组中:

Input:

3 5
13 4 8 14 1
9 6 3 7 21
5 12 17 9 3  

输出所需的是打印M行,每行包含N个空格分隔的整数。例如:

arr=[[13, 4, 8, 14, 1], [9, 6, 3, 7, 21], [5, 12, 17, 9, 3]]

这是我到目前为止所尝试的:

Output:

13 9 5
4 6 12
8 3 17
14 7 9
1 21 3

我已经创建了一个2D数组并从输入中获取了值,但我不知道其余的。让我明确表示,我绝对不会要求代码。正是要做什么才能将行转换为列,反之亦然。

提前谢谢!

1 个答案:

答案 0 :(得分:7)

您可以使用zip转置数据:

arr = [[13, 4, 8, 14, 1], [9, 6, 3, 7, 21], [5, 12, 17, 9, 3]]
new_arr = zip(*arr)
# [(13, 9, 5), (4, 6, 12), (8, 3, 17), (14, 7, 9), (1, 21, 3)]