在使用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))