繁体   English   中英

python3中for循环的效率

[英]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中的rangexrange确实有性能影响,这可能是你在提出这个问题时所想到的。 这些方法与for循环的内在性能无关。

在Python 3.0中, xrange现在隐式只是range ; 然而,在小于3.0的Python版本中,曾经有过区别 - range将整个迭代加载到内存中,然后迭代每个项目,而xrange更类似于生成器,其中每个项目仅在需要时加载到内存中迭代后从内存中删除。

更新后的问题:

换句话说,如果你有一个巨大的项目列表,你需要通过for循环迭代,使用生成器通常更有内存效率,而不是列表或元组等。再次,这没有什么如何处理Python for循环的操作,但更多的是与迭代的内容有关。 如果有疑问,请使用生成器,您的内存效率将与Python获得的效果一样好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM