我有一个很大的字符串列表,我想遍历这个列表。我想弄清楚哪种方法是遍历列表的最佳方法。我尝试过使用以下方法:
生成器表达式:
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)
这使您可以避免创建包含所有单英寸雪的中间列表,而只是在 sum() 消耗它们时生成它们,从而节省内存。
