有如下python程序段:
#生成6个随机整数,存入列表元素a[0]到a[5]中,代码略
b=[0]*6
for i in range(1,6):
for j in range(i):
if a[i]>a[j]:
b[i]+=1
print(sum(b))
执行该程序段后,输出的结果是6,那么a[0]到a[5]各元素的值可能是
A.10 17 33 28 49 30
B.14 36 21 37 11 19
C.46 33 50 47 13 34
D.33 24 34 11 31 43
为啥选择c选项!
这个代码的意思是:
循环列表a,在列表a中截取(0到i下标(不包含i))的元素,找其中有多少个小于当前元素a[i]的元素。然后将个数存在b列表的对应下标元素。
b[i]表示a[i]前比a[j]值小的个数:(i是从1开始,5结束)
i为1的时候,a[i]等于17,然后去再去循环a列表(下标j是从0开始,1结束(不包含)),找比17小的,有一个10,b[i]自增1
i为2的时候,a[i]等于33 ,然后去再去循环a列表(下标j是从0开始,2结束(不包含)),找比33 小的,有一个10,17,b[i]自增2
依次类推计数,只有c满足
依次类推
对a中的每个元素,如果比它之前的某个元素的值大,则b对应位置的值加1
例如a[2]为50,大于a[0]和a[1],则b[2]的值为2
a[3]为47,大于a[0]和a[1],则b[3]的值为2
a[5]为34,大于a[1]和a[4],则b[5]的值为2
b中元素的和为6