【PTA-python】第4章-27 二维数组中每行最大值和每行和 (10 分)--max(a[b:c])和sum(a[b:c])的使用

第4章-27 二维数组中每行最大值和每行和

分析

可以直接三行代码,循环遍历输出值。可以借助于sum()函数和max()函数。
实际上这两个函数的使用可以通过范围表示实现,而不需要一个一个表示。
max(a[i*3:i*3+3]), sum(a[i*3:i*3+3])
另外因为题目固定,还可以通过拆解计算。

a=n[0:3]
b=n[3:6]
d=n[6:9]
sum(a),max(a)

题目

输入格式:

在一行中输入9个小于100的整数,其间各以一个空格间隔
输出格式:

输出3行3列的二维数组,并在每行后面分别输出每行最大值和每行元素的和,每个数据输出占4列。

解法

自解

lst=list(map(int,input().split()))
for i in range(3):
    print("{:4d}{:4d}{:4d}{:4d}{:4d}".format(lst[i*3],lst[i*3+1],lst[i*3+2],max(lst[i*3],lst[i*3+1],lst[i*3+2]),lst[i*3]+lst[i*3+1]+lst[i*3+2]))

自解改进

lst=list(map(int,input().split()))
for i in range(3):
    print("{:4d}{:4d}{:4d}{:4d}{:4d}".format(lst[i*3],lst[i*3+1],lst[i*3+2],max(lst[i*3:i*3+3]),sum(lst[i*3:i*3+3])))

切片计算

lst=list(map(int,input().split()))
def line(lst=[]):
    print("{:4d}{:4d}{:4d}{:4d}{:4d}".format(lst[0],lst[1],lst[2],max(lst),sum(lst)))
a=lst[0:3]
b=lst[3:6]
c=lst[6:9]
line(a);line(b);line(c)
posted @ 2021-04-20 00:33  flybird2008  阅读(14)  评论(0)    收藏  举报  来源