谢邀。
直觉上,连串的迭代的话,应该是生成器快。因为生成器是惰性求值,不用像推导式经过中间变量容器的步骤。
但是用空间时间的角度去看,应该是推导式快,因为推导式空间换时间,生成器时间换空间。
还是说要视乎情况?比如简单迭代推导式更快,连串迭代生成器更快?
开题一句话,内容全靠编。
一个细枝末节的小问题,不知道大家有什么看法?
(问题上下文是 Python,主要是 py3+)
补充,推导式是 [x for x in iter],生成器是 (x for x in iter) 或者 yield 。
不讨论语法上哪个能容纳更复杂逻辑的问题。
直觉上,连串的迭代的话,应该是生成器快。因为生成器是惰性求值,不用像推导式经过中间变量容器的步骤。
但是用空间时间的角度去看,应该是推导式快,因为推导式空间换时间,生成器时间换空间。
还是说要视乎情况?比如简单迭代推导式更快,连串迭代生成器更快?
开题一句话,内容全靠编。
一个细枝末节的小问题,不知道大家有什么看法?
(问题上下文是 Python,主要是 py3+)
补充,推导式是 [x for x in iter],生成器是 (x for x in iter) 或者 yield 。
不讨论语法上哪个能容纳更复杂逻辑的问题。