我想创建一百万个无序列表,xrange(1, 1000000)
例如给我一个有序列表。我想我需要像 xrange 这样的东西,但是以无序的方式生成它。我想我可以通过循环手动生成一个列表,random.randint
并进行一些手动检查以保证列表中数字的唯一性,但我认为这会很耗时。有任何想法吗?
问问题
1905 次
3 回答
3
import random
L = range(1, 1000000)
random.shuffle(L) # shuffles in-place
在 Python3 上,您将需要使用
L = list(range(1, 1000000))
random.shuffle(L) # shuffles in-place
于 2014-04-30T10:39:37.477 回答
3
使用random
NumPy 中的模块。具体来说np.random.permutation
>>> import numpy as np
>>> np.random.permutation(5)
array([2, 1, 0, 3, 4])
于 2014-04-30T10:39:46.800 回答
0
如果您正在使用numpy
,您可以使用permutation
:
numpy.random.permutation(10)
>> array([1, 7, 6, 0, 5, 9, 2, 3, 8, 4])
于 2014-04-30T10:40:42.213 回答