首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排序函数对集合和列表的行为是否不同?

排序函数对集合和列表的行为是否不同?
EN

Stack Overflow用户
提问于 2022-04-11 11:01:24
回答 1查看 46关注 0票数 -1

我刚刚试着解决了hackerrank上的“攀爬排行榜”问题。在我的尝试中,我在测试用例6-9中多次失败,运行时错误。

代码语言:javascript
复制
def climbingLeaderboard(ranked, player):
    # Write your code here
    ret = []
    leaderboardSet = set(ranked)
    leaderboard = sorted(leaderboardSet, reverse = True)
    print(leaderboard, player)
    lenght = len(leaderboard)
    for score in player:
        while lenght > 0 and score >= leaderboard[lenght-1]:
            lenght -= 1
        ret.append(lenght+1)

    return ret

将leaderboardSet初始化更改为

代码语言:javascript
复制
leaderboardSet = list(set(ranked))

代码完美无缺。由于调试基本上是不可能的,我想知道-在集合和列表之间的排序函数是否有差异,这将导致这个问题的大集合?

编辑:这是指向原始问题的链接:https://www.hackerrank.com/challenges/climbing-the-leaderboard/problem

EN

回答 1

Stack Overflow用户

发布于 2022-04-11 11:34:26

python在其‘sorted函数中使用蒂姆塞德。如果已经有排序的输入部分,它可以工作得非常快。list意味着某种秩序,而set则意味着缺乏秩序。后者可以防止检测已排序部件的噱头,从而防止获得全速。我做了以下测试:

代码语言:javascript
复制
import timeit
timeit.timeit(setup='s=list(range(1000))',stmt='sorted(s)')
timeit.timeit(setup='s=set(range(1000))',stmt='sorted(s)')

并得到以下结果

代码语言:javascript
复制
7.1935602
10.4982897
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71826656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档