[英]Efficiency of for loops in python3
我目前正在学习Python(3),主要使用R作为主要编程语言。 虽然在R for
-loops中具有与Python相同的功能,但我被教导要避免将其用于大型操作,而是使用apply
,这样更有效。
我的问题是:Python中for
-loops效率如何,是否有替代方案,是否值得探索作为Python新手的可能性?
例如:
p = some_candidate_parameter_generator(data)
for i in p:
fit_model_with paramter(data, i)
请耐心等待,在不特定代码的情况下举一个例子是很棘手的。 但这是R
我会用apply
编写的东西,特别是如果p
很大的话。
评论正确地指出for循环“只有你的逻辑有效”; 但是,Python中的range
和xrange
确实有性能影响,这可能是你在提出这个问题时所想到的。 这些方法与for循环的内在性能无关。
在Python 3.0中, xrange
现在隐式只是range
; 然而,在小于3.0的Python版本中,曾经有过区别 - range
将整个迭代加载到内存中,然后迭代每个项目,而xrange
更类似于生成器,其中每个项目仅在需要时加载到内存中迭代后从内存中删除。
更新后的问题:
换句话说,如果你有一个巨大的项目列表,你需要通过for循环迭代,使用生成器通常更有内存效率,而不是列表或元组等。再次,这没有什么如何处理Python for循环的操作,但更多的是与迭代的内容有关。 如果有疑问,请使用生成器,您的内存效率将与Python获得的效果一样好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.