为什么在此答案中使用set()

时间:2018-10-14 19:37:13

标签: python set

鉴于您在大学运动日的得分表,您需要找到亚军得分。您会得到分数。将它们存储在列表中,并找到第二名的分数。 而且我发现了以下解决方案。我想知道为什么在这里使用set()。

 n = int(input())
 nums = map(int, input().split())    
 print(sorted(list(set(nums)))[-2])

2 个答案:

答案 0 :(得分:3)

简而言之:它将删除重复的值

集合是一个集合,该集合最多包含一个值 。因此,如果元素是可哈希的,则可以将其用作唯一性过滤器,例如:

>>> set([1,4,1,2,5,2])
{1, 2, 4, 5}

因此,尽管原始列表多次包含12,但在集合中,它们仅存储了一次。

因此,我们可以在此处使用它来获取第二大值,在其中我们忽略重复。

但是我不知道这是否满足“问题陈述”。由于“获胜者”和“获胜者”可能具有相同的分数。因此,这取决于问题说明的“细节”。

答案 1 :(得分:2)

set是唯一项的无序无索引集合。 通常用于从序列中删除重复项。

在此集合中,此列表将列出唯一的列表,以查找第二大的列表。