python-矩阵交换行
[题目描述]
给定一个 5×5 的矩阵(数学上,一个 r×c 的矩阵是一个由 r 行 c 列元素排列成的矩形阵列),将第 n 行和第 m 行交换,输出交换后的结果。
输入:
输入共 6 行,前 5 行为矩阵的每一行元素,元素与元素之间以一个空格分开。
第 6 行包含两个整数 m、n,以一个空格分开(1≤m,n≤5)。
输出:
输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。
样例输入1
1 2 2 1 2
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
3 0 8 2 4
1 5
样例输出1
3 0 8 2 4
5 6 7 8 3
9 3 0 5 3
7 2 1 4 6
1 2 2 1 2
来源/分类(难度系数:一星)
每日一题 数组
完整代码展示:
a=[]
for i in range(5):
b=list(map(int,input().split()))
a.append(b)
b,c=map(int,input().split())
d=a[b-1]
e=a[c-1]
for j in range(0,len(a)):
if j+1==b:
a[j]=e
elif j+1==c:
a[j]=d
f=0
while f<len(a):
sum=''
for k in range(0,len(a[f])):
sum+="{} ".format(str(a[f][k]))
print(sum)
f+=1
代码解释:
“a=[]
for i in range(5):
b=list(map(int,input().split()))
a.append(b) ”,建立一个空列表a,循环5次:让用户输入一列数组,并将其储存在列表b中,再将b添加进a中。
“b,c=map(int,input().split()) ”,让用户输入矩阵中需要交换的两个行列的位置。
“d=a[b-1]
e=a[c-1]
for j in range(0,len(a)):
if j+1==b:
a[j]=e
elif j+1==c:
a[j]=d ”,分别将a[b-1]和a[c-1]赋给d和e,接着遍历a中元素,分别用e,d查找和替换符合条件的a[j]。
“f=0
while f<len(a):
sum=''
for k in range(0,len(a[f])):
sum+="{} ".format(str(a[f][k]))
print(sum)
f+=1 ”,令f为循环密码子,初始值为0,当f<len(a)时:建立一个空字符串sum,依次连接a[f]中的元素,连接结束后打印sum。每循环依次,就令f+1,直至f==len(a),跳出整个while循环。
运行效果展示:
(声明:以上内容均为原创)