Python中的无序列表生成

1 投票
3 回答
2656 浏览
提问于 2025-04-18 04:52

我想创建一个一百万个的无序列表,比如用 xrange(1, 1000000) 这个方法会给我一个有序的列表。我觉得我需要类似于 xrange 的东西,但能生成一个无序的列表。我可以通过循环使用 random.randint 来手动生成一个列表,并进行一些检查以确保列表中的数字是唯一的,但我觉得这样会很耗时间。有没有什么好主意?

3 个回答

0

如果你在使用 numpy 这个库,你可以使用 permutation 这个功能:

numpy.random.permutation(10)
>> array([1, 7, 6, 0, 5, 9, 2, 3, 8, 4])
3

使用NumPy库中的random模块。特别是可以用np.random.permutation这个函数。

>>> import numpy as np
>>> np.random.permutation(5)
array([2, 1, 0, 3, 4])
5
import random
L = range(1, 1000000)
random.shuffle(L)  # shuffles in-place

在Python3中,你需要使用

L = list(range(1, 1000000))
random.shuffle(L)  # shuffles in-place

撰写回答