相关文章推荐
逼格高的小蝌蚪  ·  IntelliJ ...·  1 年前    · 
耍酷的啄木鸟  ·  推文 | BL | ...·  1 年前    · 
绅士的毛巾  ·  使用Axure ...·  1 年前    · 
考研的麦片  ·  YUV与RGB格式转换 | ...·  2 年前    · 

为什么random.shuffle比使用sorted函数慢得多?

5 人关注

在使用pythons的 random.shuffle 函数时,我注意到使用 sorted(l, key=lambda _: random.random()) 明显比 random.shuffle(l) 快。据我所知,这两种方式都会产生完全随机的列表,那么为什么 shuffle 会花费这么多时间呢?

以下是使用 timeit 模块的时间。

from timeit import timeit
setup = 'import random\nl = list(range(1000))'
# 5.542 seconds
print(timeit('random.shuffle(l)', setup=setup, number=10000))