用 zip 解包矩阵行并按列组合,直接输出转置矩阵。
OJ: noi_openjudge
题目 ID: ch0108-10
难度:入门
标签:矩阵数组python
日期: 2026-07-30 23:01
题意
输出
思路
zip(*matrix) 将所有行解包并按相同列下标组合,每个得到的元组就是转置矩阵的一行。
代码
cpp
#include <cstdio>
int n,m,k;
int a[200][200];
int b[200][200];
int c[200][200];
int main(){
int i,j;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
for (j=1;j<=m;j++){
for (i=1;i<=n;i++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}复杂度
总结
Python代码
python
row_count, column_count = map(int, input().split())
matrix = [list(map(int, input().split())) for _ in range(row_count)]
for column in zip(*matrix):
print(*column)C++代码
cpp
#include <cstdio>
int n,m,k;
int a[200][200];
int b[200][200];
int c[200][200];
int main(){
int i,j;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
for (j=1;j<=m;j++){
for (i=1;i<=n;i++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}复杂度
时间复杂度为
总结
zip(*matrix) 是规则二维列表转置的简洁 Python 写法。