【发布时间】:2014-04-30 10:37:49
【问题描述】:
我想创建一百万个无序列表,xrange(1, 1000000) 例如给我一个有序列表。我想我需要像 xrange 这样的东西,但是以无序的方式生成它。我想我可以通过循环 random.randint 手动生成一个列表,并进行一些手动检查以保证列表中数字的唯一性,但我认为这会很耗时。有任何想法吗?
【问题讨论】:
-
这可以通过
shuffle轻松解决,但如果您不想将整个洗牌数组存储在内存中并为其使用随机就地迭代器,事情就会变得棘手。 -
@rr:如果您想确保唯一性,我不确定您是否可以不将数组存储在内存中?
-
@jmetz 我也对此感兴趣。我添加了评论,以便 OP 意识到这个限制,因为他明确使用
xrange并且显然关心性能。 -
你需要所有的百万数字吗?如果没有,
random.sample(xrange(1, 1000000), n)可能会起作用
标签: python list python-2.7 unordered