2016-04-18 37 views
0
string = "ABCDEFGH" 

誰もが説明できます。リストのスライスの開始と終了

たとえば、 string[0:3:1]は、結果を"ABC"と出力します。あなたが見ることができるように私はend = 3と言っているので、string[0:3:1]"ABCD"になるべきではありません。なぜなら、コンピュータは0から先に読み込まれるからです。

もう1つの理由: string[0:8:-1]の結果が表示されません。それは"HGFEDCBA"ではありませんか? syntaxが間違っているかわかりませんが、printの結果はstring[::-1]です。

+2

「開始」が含まれ、「終了」が含まれていないためです。このように、 'end-start'はスライスの長さを与えます。長さ 'n'の' list'があるとき、 'list [n]'は範囲外です。最後の要素は 'list [n-1]' – Will

+0

です。 – Noobrammer

答えて

0

len(string)=8以降、スライスstring[0:8]は「すべてのメモリインデックス0-7」(つまり合計8つのインデックス)と解釈されます。 Pythonの最後のインデックスは "〜まで"です。

質問の2番目の部分については、構文はstring[7::-1]です。 string[0:8:-1]は0から始まり、 "backward"に増加しようとしますが、反復の始めにすでに "0"に達しているので、トラバースは起こりません。

関連する問題