2017-09-22 88 views
-3
for i in range(-1, 2): 
    pass 

VSPython的循環範圍VS循環數組

for i in [-1, 0, 1]: 
    pass 

什麼是最好的?我認爲第二個選項有更好的可讀性?哪個更快?

Especifications:

  1. 我總是用python3
  2. 是的,我注意到了 「這是更快?」問題在某種程度上是愚蠢的。不要手工輸入足夠長的列表來手動注意差異。
+0

哪個python版本?範圍從2.x到3.x的工作方式不同。 – lapinkoira

+4

'range(-1,2)'更具可讀性;性能和內存使用的差異可以忽略 –

+1

爲什麼你認爲會有速度差異,你試圖實現什麼 – Bg1850

回答

0

使用range()在技術上不只是打字出來的列表作爲range()功能有慢一點創建一個列表並且需要〜0.012秒。

測試:
使用range()了〜0.045秒。
使用具有相同字符數量的列表需要約0.033秒。

我建議您使用range(),因爲它更容易,0.012秒的小差異不值得。

我希望這有助於!

0

如果你知道如何記住您的列表意味着你可以用列表去..

例如:你的情況,你有[-1,0,1]在這裏,你可以很容易地記住...

讓,

考慮你想循環這個列表 - >[-4,-3,-2,-1,0,1,2,3,4]你會嘗試這個還是下面的一個?

>>> range(-4,5) 
[-4, -3, -2, -1, 0, 1, 2, 3, 4] 

範圍()將幫助您生成動態列表...

,如果你想這是最好的手段, 你應該想想你的用例..

,如果你要使用一旦列表xrange xrange將返回生成器消耗內存比範圍更少..因爲

range返回Python列表對象和xrange返回的xrange對象這樣你就可以使用一次..

+0

'xrange'不返回生成器。 –

+0

是的更改..謝謝 –