相关疑难解决方法(0)

在Python中创建随机的整数列表

我想为测试目的创建一个随机的整数列表.数字的分布并不重要.唯一重要的是时间.我知道生成随机数是一项耗时的任务,但必须有更好的方法.

这是我目前的解决方案:

import random
import timeit

# Random lists from [0-999] interval
print [random.randint(0, 1000) for r in xrange(10)] # v1
print [random.choice([i for i in xrange(1000)]) for r in xrange(10)] # v2

# Measurement:
t1 = timeit.Timer('[random.randint(0, 1000) for r in xrange(10000)]', 'import random') # v1
t2 = timeit.Timer('random.sample(range(1000), 10000)', 'import random') # v2

print t1.timeit(1000)/1000
print t2.timeit(1000)/1000
Run Code Online (Sandbox Code Playgroud)

v2比v1快,但它的工作规模不大.它给出以下错误:

ValueError:大于人口的样本

是否有一个快速,有效的解决方案,以这种规模工作?

一些结果来自答案

安德鲁:0.000290962934494

gnibbler's:0.0058455221653

KennyTM's:0.00219276118279

NumPy来了,看到并征服了.

python random performance list

68
推荐指数
3
解决办法
16万
查看次数

标签 统计

list ×1

performance ×1

python ×1

random ×1