[英]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.