在Python中过滤/迭代非常大的列表

abc*_*bar 5 python data-structures

如果我有一个包含 1000 万个对象的列表,如何快速过滤该列表。通过列表理解完成一次完整迭代大约需要 4-5 秒。python中有没有有效的数据结构或库?或者Python不适合处理大量数据?

Raf*_*ler 3

Itertools专为高效循环而设计。特别是,您可能会发现这ifilter适合您的目的。迭代大型数据结构总是很昂贵,但如果您一次只需要一些数据,那么惰性求值会很有帮助。

您还可以尝试使用生成器表达式,它们通常与列表理解对应项相同(尽管用法可能不同)或生成器,它们也具有惰性求值的优点。