Nested Lists in Python 3 - HackerRank Solution

Nested Lists

问题描述
  • 给予N个学生的姓名和分数
  • 将它们存储在一个嵌套列表中
  • 并打印成绩第二低的任何学生的名字
样例演示
  • 输入
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
  • 输出
Berry
Harry
参考代码
  • 普通版
Result =[]
scorelist = []

if __name__ == '__main__':
    for _ in range(int(input())):
        name = input()
        score = float(input())
        Result+=[[name,score]]
        scorelist+=[score]
    b=sorted(list(set(scorelist)))[1] 

    for a,c in sorted(Result):
        if c==b:
            print(a)
  • 精妙版
students = [[input(),float(input())] for i in range(int(input()))]
second_highest = sorted(set(j for i,j in students))[1]
print("\n".join(sorted(i for i,j in students if j==second_highest)))
总结

1.join的用法:

  • 语法: ‘sep’.join(seq)
    • sep:分隔符。可以为空
    • seq:要连接的元素序列、字符串、元组、字典

2.sorted是Python 内置函数之一,其功能是对序列(列表、元组、字典、集合、还包括字符串)进行排序。

  • 语法:
list = sorted(iterable, key=None, reverse=False)  
  • iterable 表示指定的序列
  • key 参数可以自定义排序规则
  • reverse 参数指定以升序(False,默认)还是降序(True)进行排序
  • 最终能返回一个排好序的列表
  • 样例:
#自定义按照字符串长度排序
print(sorted(chars,key=lambda x:len(x)))
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值