我不知道很多關於蟒蛇,但我很驚訝下面的代碼工作:爲什麼這不會導致Python中出現數組越界錯誤?
import sys
prev = [sys.maxint]*(5)
j = 0
print prev[j]
print prev[j-1]
總的來說我認爲第二print
語句應該給我一個錯誤。爲什麼這個工作?
我需要將一些python
代碼轉換爲C++
,並在C++
這不起作用。
我不知道很多關於蟒蛇,但我很驚訝下面的代碼工作:爲什麼這不會導致Python中出現數組越界錯誤?
import sys
prev = [sys.maxint]*(5)
j = 0
print prev[j]
print prev[j-1]
總的來說我認爲第二print
語句應該給我一個錯誤。爲什麼這個工作?
我需要將一些python
代碼轉換爲C++
,並在C++
這不起作用。
mylist[-1]
返回mylist
,mylist[-2]
第二到最後一個項目等
這是設計的最後一個項目。閱讀tutorial。
在蟒X [-1]返回最後一個元件以列表
這是因爲的J - 1計算結果爲-1,這作爲Python列表的索引中使用時,是指最後一個元素。
數組l
的索引可以是範圍在[-len(l), len(l)-1]
(注:兩端都包括)的整數。您熟悉[0, len(l)-1]
範圍內的指數。 [-len(l),-1]
範圍內的索引如下:在該範圍內取i
,然後l[i] == l[len(l) + i]
。本質上,負數從數組的末尾向後計數。因此,prev[j-1] = prev[-1] = prev[len(prev) + -1] = prev[5 - 1] = prev[4]
或數組中的最後一個元素。
下一個問題:[Python Primer for Python Slice Notation](http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation) –