我有一个函数,它通过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使用。
抱歉,如果我的问题愚蠢,但我对生成器和泡菜都是新手……谢谢,
巴里
发布于 2011-10-02 05:47:37
您可以使用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)https://stackoverflow.com/questions/7623052
复制相似问题