测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A26006. 学生排序对某年级的学生按身高及性别进行排序。要求女生在前、男生在后,性别相同的按身高升序排列。所有学生信息的数据格式例如[[“男”,“徐杰”,145],[“女”,“王梓静”,138]……],其中[“男”,”徐杰”,145]表示其中一位学生的信息,实现该问题解决的Python程序如下,请将程序补充完整。"""将全体学生的身高性别数据存入列表st中,测试列表如下:"""st = [["男", "徐杰…

填空题 中等

题目描述

学生排序

对某年级的学生按身高及性别进行排序。要求女生在前、男生在后,性别相同的按身高升序排列。所有学生信息的数据格式例如[[“男”,“徐杰”,145],[“女”,“王梓静”,138]……],其中[“男”,”徐杰”,145]表示其中一位学生的信息,实现该问题解决的Python程序如下,请将程序补充完整。

"""将全体学生的身高性别数据存入列表st中,测试列表如下:"""

st = [["男", "徐杰", 145], ["女", "王梓静", 138], ["女", "李妹", 135], ["男", "张小坤",148]]
_______ ① _______       
for i in range(n-1):
   for j in range(0, _______ ② _______ ):
       if st[j][0]==st[j+1][0] and st[j][2]> _______ ③ _______ :
           st[j],st[j+1]=st[j+1],st[j]
       elif st[j][0]=="男" and st[j+1][0]=="女":
           st[j],st[j+1]= _______ ④ _______       
print(st)

参考答案

"""将全体学生的身高性别数据存入列表st中,测试列表如下:""" st = [["男", "徐杰", 145], ["女", "王梓静", 138], ["女", "李妹", 135], ["男", "张小坤",148]] n=len(st) for i in range(n-1): for j in range(0,n-i-1): if st[j][0]==st[j+1][0] and st[j][2]>st[j+1][2]: st[j],st[j+1]=st[j+1],st[j] elif st[j][0]=="男" and st[j+1][0]=="女": st[j],st[j+1]=st[j+1],st[j] print(st)

答案解析

评分标准:

(1)n=len(st)(或等效答案);(2分)

(2)n-i-1 或n-i-1,1(或等效答案);(3分)

(3)st[j+1][2](或等效答案);(3分)

(4)st[j+1],st[j](或等效答案)。(2分)


上一题 下一题