gpt4 book ai didi

python - 如何在 python 中切片进程 itertools.product?

转载 作者:太空狗 更新时间:2023-10-30 02:18:00 26 4
gpt4 key购买 nike

我想处理一个非常大的 itertools.product 对象。问题是这样的:

import string
from itertools import product
text = string.lowercase[:] + string.uppercase[:] + '0123456789'
items = product(text, repeat=5)
for item in items:
#do something

我知道 items 的长度是 62**5。如果我想处理items中索引范围从300000600000的元素,如何实现?

我尝试将 itertools.product 转换为 python 列表,如下所示:

items = list(product(text, repeat=5))[300000:600000+1]
for item in items:
#do something

但是好像这个转换消耗了很多内存,因为我一直在等待这个转换,最后放弃了。

我有这个需求是因为我想在python gevent中做这件事情,所以我想将大的itertool.product切片成小的item,用于gevent spawn。

最佳答案

您可以使用 islice做这个。

from itertools import product, islice
import string

text = string.ascii_letters + string.digits
for item in islice(product(text,repeat=5), 300000, 600000):
# do something

关于python - 如何在 python 中切片进程 itertools.product?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38071828/

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