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

2024-04-27 13:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

更具体地说,第一个输入是2个数字。NMN-总行,M总列。我用过b=map(int, raw_input().split())。然后基于b[0],接下来的N行将包含M空格分隔的整数。例如:

Input:

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

现在程序将它存储在二维数组中:

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

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

Output:

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

这就是我目前所做的尝试:

 #Getting N and M from input
 NM=map(int, raw_input().split())
 arr=[]

 for i in xrange(NM[0]):
     c=map(int, raw_input().split())
     arr.append(c)

我已经创建了一个2D数组,并从input中获取了值,但我不知道其余的值。让我说清楚,我绝对不是在要求代码。正是要做什么来将行转换成列,并反过来。

提前谢谢!


Tags: 程序mapinputraw数字整数数组int
1条回答
网友
1楼 · 发布于 2024-04-27 13:25:09

您可以使用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)]

相关问题 更多 >