gpt4 book ai didi

python - 组合发电机

转载 作者:行者123 更新时间:2023-11-28 20:52:04 25 4
gpt4 key购买 nike

我有一个通过 yield 返回列表的函数。我按如下方式使用此功能:

myList = []
for i in range(10):
myList = myList + list(myListGenerator(i))

pickleFile = open("mystuff.dat", "wb")
pickle.dump(myList, pickleFile)
pickleFile.close()

我只是想知道这是否是 pickle 数据的最有效方法,或者我是否可以将生成器(myListGenerator(0)、myListGenerator(1) 等)组合成一个生成器,然后供 pickle 使用。

抱歉,如果我的问题听起来很愚蠢,但我对生成器和 pickle 都是新手......谢谢,

巴里

最佳答案

您可以使用 itertools.chain.from_iterable 将生成器的结果(使用生成器表达式创建)组合到一个列表中:

pickle.dump(list(itertools.chain.from_iterable(
myListGenerator(i) for i in range(10))), pickleFile)

或者重写生成器以在内部包含 range 调用,然后就可以了

pickle.dump(list(myListGenerator(10)), pickleFile)

关于python - 组合发电机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623052/

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