dis*_*cer 3 python functional-programming list generator
在Python中执行以下操作的最佳方法是什么:
for item in [ x.attr for x in some_list ]:
do_something_with(item)
Run Code Online (Sandbox Code Playgroud)
这可能是一个小问题,但是列表理解不是生成我们不需要的新列表而只是占用内存吗?如果我们能够制作类似迭代器的列表理解,那不是更好吗?
是(对你的两个问题).
通过使用括号而不是括号,您可以为该序列创建所谓的"生成器表达式",这完全符合您的建议.它允许您迭代序列而不分配列表以同时保存所有元素.
for item in (x.attr for x in some_list):
do_something_with(item)
Run Code Online (Sandbox Code Playgroud)
生成器表达式的详细信息记录在PEP 289中.
归档时间: |
|
查看次数: |
1076 次 |
最近记录: |