在下面的示例中,resp.results是一个迭代器。
版本1:
版本1:
items = []
for result in resp.results:
item = process(result)
items.append(item)
return iter(items)
版本2:
for result in resp.results:
yield process(result)
在性能和内存节省方面,版本1中返回iter(items)是否比仅返回items更好/更差?
在“Python Cookbook”中,Alex表示明确使用iter()“更灵活但使用频率较低”,但是返回iter(items)与版本2中的yield相比有哪些优缺点呢?
此外,检查迭代器和/或yield的最佳方法是什么?--您不能使用len(results)来检查列表的大小吗?