私は次のコードを理解しようとしています:
# 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](Slicing in D)は、右からの記法を含む母国語でのメモリ安全なスライスに興味深いです。 –
Pythonはこの機能をPerlから直接取得しています:https://stackoverflow.com/questions/15911115/arrays-and-negative-indexes-in-perl私の知る限りでは、LarryはPerlのためにそれ自身を思いついたのですが、彼はどこか他の人からそれを得ていたかもしれません。 –
私はこの質問が最後の[Pythonスライス表記のための良いプライマー](http://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation) – Daenyth
と同じ地面をカバーしていると思います。それが正しいと思う..ありがとう! – Dawood