[英]Combining generators
我有一個函數,通過yield返回一個列表。 我使用此功能如下:
myList = []
for i in range(10):
myList = myList + list(myListGenerator(i))
pickleFile = open("mystuff.dat", "wb")
pickle.dump(myList, pickleFile)
pickleFile.close()
我只是想知道這是否是對數據進行腌制的最有效方法,或者是否可以將生成器(myListGenerator(0),myListGenerator(1)等)組合到一個可以由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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.