gpt4 book ai didi

python - 避免从随机生成重复值

转载 作者:太空狗 更新时间:2023-10-30 02:16:15 24 4
gpt4 key购买 nike

我想生成随机数并将它们存储在如下列表中:

alist = [random.randint(0, 2 ** mypower - 1) for _ in range(total)]

我的担忧如下:我想生成 (0, 2 ** mypower - 1) 范围内的 total=4000 万 值。如果 mypower = 64,则 alist 的大小约为 20GB (40M*64*8),这对我的笔记本电脑内存来说非常大。我有一个想法,可以迭代生成大量值,比如一次 500 万个,然后将它们保存到一个文件中,这样我就不必一次生成所有 4000 万个值。我担心的是,如果我在循环中这样做,是否可以保证 random.randint(0, 2 ** mypower - 1) 不会生成已经从上一次迭代生成的值?像这样:

        for i in range(num_of_chunks):
alist = [random.randint(0, 2 ** mypower - 1) for _ in range(chunk)]
# save to file

最佳答案

好吧,既然效率/速度并不重要,我认为这会起作用:

s = set()
while len(s) < total:
s.add(random.randint(0, 2 ** mypower - 1))
alist = list(s)

因为集合中只能包含独特的元素,所以我认为这会很好用

关于python - 避免从随机生成重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com