python-学生排序(赛氪OJ)

[题目描述]
已有 a、b 两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。
输入格式:
输入共 N+M+1 行。
第一行,输入 a、b 两个链表元素的数量 N、M,中间用空格隔开。下来 N 行,每行输入两个整数,表示 a 中元素的学号和成绩,下来 M 行,每行输入两个整数,表示 b 中元素的学号和成绩。
输出格式:
输出共 N+M 行,按照学号升序排列的数据。


样例输入
2 3
5 100
6 89
3 82
4 95
2 10
样例输出
2 10
3 82
4 95
5 100
6 89
数据范围
对于 100% 的数据,保证 N<100,M<100。
来源/分类(难度系数:一星)


完整代码展示:
a,b=map(int,input().split())
number=[]
c=[]
for i in range(a):
     d=list(map(int,input().split()))
     c.append(d)
     number.append(d[0])
e=[]
for j in range(b):
     f=list(map(int,input().split()))
     e.append(f)
     number.append(f[0])
c=c+e
number.sort()
for k in range(0,len(number)):
      for l in range(0,len(c)):
            if number[k]==c[l][0]:
                 print(c[l][0],c[l][1])


代码解释:
a,b=map(int,input().split())                                     number=[]                              ”,让用户输入两组学生各自的数量,并建立一个空列表number,用于储存从两组中提取出来的学生学号数据。
c=[]
 for i in range(a):
      d=list(map(int,input().split()))
     c.append(d)
     number.append(d[0])
e=[]
for j in range(b):
     f=list(map(int,input().split()))
     e.append(f)
     number.append(f[0])  
              ”,建立一个空列表c,接着让用户输入第一组学生的数据(学号及成绩),将其储存在列表d中,再将d添加进e中,d[0]添加进number中(循环b次)。列表e及其后for循环同理。
c=c+e
 number.sort()
 for k in range(0,len(number)):
       for l in range(0,len(c)):
             if number[k]==c[l][0]:
                  print(c[l][0],c[l][1])
   ”,将列表e中与列表c合并为c,并将number中数据进行升序排序。遍历列表number和列表c中所有元素,如果存在number[k]==c[l][0],则打印c[l][0],c[l][1]。


运行效果展示:

1da98c76d72341c4959803c0e0dc9b5d.jpg

563cdc64a9a54699b35da122b8d16278.jpg 

               (声明:以上内容均为原创)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪云-微星

感谢大家的支持与鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值