我試圖理解下面的一段代碼:
# node list
n = []
for i in xrange(1, numnodes + 1):
tmp = session.newobject();
n.append(tmp)
link(n[0], n[-1])
具體來說,我不明白什麼是指數-1
指的是。如果索引0
引用了第一個元素,那麼-1
是指什麼?
我試圖理解下面的一段代碼:
# node list
n = []
for i in xrange(1, numnodes + 1):
tmp = session.newobject();
n.append(tmp)
link(n[0], n[-1])
具體來說,我不明白什麼是指數-1
指的是。如果索引0
引用了第一個元素,那麼-1
是指什麼?
列表索引-x表示從列表末尾開始的第x個項目,因此n[-1]
表示列表n
中的最後一個項目。任何好的Python教程都應該告訴你這一點。
這是一個不尋常的約定,Python以外的其他語言已經採用,但它非常有用;在任何其他語言中,您將花費大量時間編寫n[n.length-1]
來訪問列表的最後一項。
雖然並非所有語言都能遵循此設計,在C中,'n [-1]'實際上意味着'n [0]之前的元素',如果n指向一個數組 - 即使它更通常是一個錯誤也沒有問題。 [http://dlang.org/d-array-article.html](在D中進行切片)是一種有趣的以母語編寫的內存安全切片,包括從右邊的符號。 – 2014-09-11 18:15:18
Python直接從Perl獲得此功能:https://stackoverflow.com/questions/15911115/arrays-and-negative-indexes-in-perl。據我所知,Larry自己爲Perl提出了這個問題,但他可能從其他地方獲得了它。 – 2017-08-30 20:07:55
我認爲這個問題最終涵蓋了與[Python Primer for Python Slice Notation]相同的基礎(http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation) – Daenyth 2012-07-06 18:43:04
I認爲這是正確的..謝謝! – Dawood 2012-07-06 18:44:04