cod*_*hki 1 python generator python-itertools listiterator
我有大量的字符串列表,我希望iteratoe在这个列表上.我想弄清楚哪个是迭代列表的最佳方法.我尝试过使用以下方法:
发电机表达: g = (x for x in list)
Itertools.chain: ch = itertools.chain(list)
对于列表迭代,是否有另一种方法,优于这两种方法?
最快的方法就是迭代列表.如果你已经有了一个列表,那么分层更多的迭代器/生成器就不会加快速度.
一个好的旧版本for item in a_list:将与任何其他选项一样快,并且肯定更具可读性.
迭代器和生成器适用于尚未在内存中放置列表的情况.itertools.count()例如,一次只生成一个数字; 它不是在现有的数字列表中工作.
另一种可能的用法是当你链接许多操作时 - 你的中间步骤可以创建迭代器/生成器而不是创建中间列表.例如,如果您想要通过sum()调用链接列表中的每个项目的查找,您可以使用生成器表达式来查找输出,sum()然后使用:
total_inches_of_snow = sum(inches_of_snow(date) for date in list_of_dates)
Run Code Online (Sandbox Code Playgroud)
这样可以避免创建一个包含所有单个英寸雪的中间列表,而只是将它们生成为sum()消耗它们,从而节省内存.
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |