挑战:从包含 5 个元素的列表中找到可以从四个元素中获得的最小和最大和。
方法如下:按降序和升序对列表进行排序,并将它们存储到两个不同的变量中。查找两个列表中前 4 个元素的总和。一笔金额最少,第二笔金额最多。
代码 :
arr = [2,1,3,4,5]
arr.sort()
asc = arr
print(asc[0],asc[1],asc[2],asc[3])
arr.sort(reverse = True)
des = arr
print(des[0],des[1],des[2],des[3])
maxi = 0
mini = 0
for j in range(4) :
mini = mini + asc[j]
print(mini, asc[j])
maxi = maxi + des[j]
print(maxi,des[j])
print(mini, maxi)
出于调试目的,这里引入了很少的打印语句。从代码中可以看出,bot 在进入 for 循环之前和进入循环之后都会打印排序后的版本。在输出中可以清楚地看到,应该按升序保存元素的列表是按降序排列的元素。
输出 :
11 12 13 14 - list in the ascending order
15 14 13 12 - list in the descending order
15 15 - round 0
15 15
29 14 - round 1
29 14
42 13 - round 2
42 13
54 12 - round 3
54 12
54 54 - final output
为什么某个特定列表中的元素在进入 for 循环时会改变它们的顺序?
慕斯709654
ITMISS
相关分类