python - 为什么在这个答案中使用 set()
问题描述
根据参加者的大学运动会成绩单,您需要找到亚军成绩。给你分数。将它们存储在一个列表中,然后找到亚军的分数。我找到了以下解决方案。我想知道为什么在这里使用 set() 。
n = int(input())
nums = map(int, input().split())
print(sorted(list(set(nums)))[-2])
解决方案
简而言之:它删除了重复值。
集合是最多包含一个值的集合。因此,您可以 - 鉴于元素是可散列的 - 将其用作唯一性过滤器,例如:
>>> set([1,4,1,2,5,2])
{1, 2, 4, 5}
因此,尽管原始列表包含多次,但在集合中,这些仅存储一次1
。2
因此,在这里我们可以使用它来获得忽略重复项的第二大值。
但是,我不知道这是否满足“问题陈述”。因为“获胜者”和“亚军”可能有相同的分数。因此,它取决于问题规范的“细节”。
推荐阅读
- linux - 在 ubuntu 18.04 中使用私有实例将 OSSEC 服务器与 OSSEC 代理连接起来有困难
- postgresql - PostgreSQL 获取给定月份的第 x 个工作日
- c++ - 使用opencv构建Tensorflow2X c++ api的Docker文件,包括在其上运行c++代码的dnn库只支持CPU,不需要GPU
- java - Spring REST API,响应中的自定义实体字段
- vb.net - 获取多层非公开价值
- phpstorm - PhpStorm 自行删除空格
- javascript - 如何制作一周中的一天计算器?
- json - 根据json类型列中值的存在获取Eloquent模型
- python - 在python的数据框中分组和打印最大值
- ios - 单击按钮后,从数组索引 0 移动到 1,依此类推