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分)
上一题
下一题