簡體   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