【Python】第8次练习:列表——程序填空题 -合并队列、列表元素"零"的移动、列表逆序输出、第K序元素查找
1、程序填空题 -合并队列
题目:某班男女两队同学各若干人,男生已按身高由低到高存放在列表中,女生身高需输入到一个列表。体育课排队欲由男、女两队合为一队。请保持从低到高的顺序不变,将合并队列的结果按格式"身高(性别)"输出。如下所示。
boy = [1.69, 1.72, 1.78, 1.83, 1.89]
girl = list(eval(input()))
#(1)
girl=sorted(girl)
print('男队身高:', end='')
for b in boy:
print(b, end=' ')
print('\n女队身高:', end='')
for g in girl:
print(g, end=' ')
print('\n合并后:', end='')
#(2)
i=0
j=0
while j<len(girl):
if boy[i] < girl[j]:
print(boy[i], '(男)', sep='', end = ' ')
i += 1
else:
print(girl[j], '(女)', sep='', end = ' ')
j += 1
while i < len(boy):
print(boy[i], '(男)', sep='', end = ' ')
i += 1
while j < len(girl):
print(girl[j], '(女)', sep='', end = ' ')
j +=1
2、列表元素"零"的移动
题目:对于一个列表,在保持非零元素相对顺序的同时,将元素中所有的数字0移动到末尾。例如,获得输入列表 [0, 1, 0, 3, 12],输出 [1, 3, 12, 0, 0]。
ls=eval(input())
lt1=[]
lt2=[]
for i in range(len(ls)):
if ls[i]==0:
lt1.append(0)
else:
lt2.append(ls[i])
print(lt2+lt1)
3、列表逆序输出
题目:建立如下列表并原样输出,并将列表中的数据逆序存放再次输出。a=[1,2,3,4,5,6,7]
a=[1,2,3,4,5,6,7]
print(a)
a.reverse()
print(a)
4、第K序元素查找
题目:在无排序的一个列表中查找第k个最大元素。例如, 给定3,2,1,5,6,4和k=2,返回5。注意: 假设k总是有效的,0 <= k <=数组的长度
a=list(eval(input()))
k=eval(input())
a=sorted(a)
a.reverse()
print(a[k-1])