string = "HELLO"
print string[::-1] #as expected
print string[0:6:-1] #empty string why ?
私は、Pythonで文字列を反転するのが簡単であることに驚きましたが、その後私はこれを打ち負かしました。誰かが第二の逆がうまくいかない理由を説明してもらえますか?リバース文字列Pythonスライス表記
string = "HELLO"
print string[::-1] #as expected
print string[0:6:-1] #empty string why ?
私は、Pythonで文字列を反転するのが簡単であることに驚きましたが、その後私はこれを打ち負かしました。誰かが第二の逆がうまくいかない理由を説明してもらえますか?リバース文字列Pythonスライス表記
2番目の文字列が空白の理由は、コンパイラに0から始まり、6で終了し、-1から始まるように指示するためです。
コンパイラは-1に0を繰り返して(0、-1、-2、-3など)繰り返して6より大きい数になることはないため、コンパイラは空の文字列を返すようにプログラムされています。
Try これは、-1から6を繰り返して追加すると、-1(文字列の最後を過ぎて)になるため機能します。
注:これは答えは、主に@dmcdougallをまとめたものです@Ben_Loveと、次のように
スライス表記が書かれている、もう少し説明してSundeepのコメント@されています
list_name[start_index: end_index: step_value]
をPythonのリストインデックスは、数字の行にある数字と似ていません。 step_value
が-1
の場合、リストのインデックスは-1st
になりません。0th
インデックスの後になります。結果は
>>>> print string[0:6:-1]
>>>>
そして
>>>> print string[0::-1]
>>>> H
を生成している故に下に
したがって、start_index
が0の場合、step_value
が-1である-1,2、-3、-4、-5、-6のインデックスを巡回する巡回順序になります。-1
です。また
同様
>>>> print string[-1:-6:-1]
>>>> OLLEH
と
>>>> print string[-1::-1]
>>>> OLLEH
このように、start_index
が-1の場合、-1、-2、-3、-4、-5、-6のインデックスを巡回するように循環順になり、出力OLLEH
が得られます。start_index
は6とstep_value
ときに理解する
そのかなりまっすぐ進むは-1
>>>> print string[6::-1]
>>>> OLLEH
あなたはドキュメントを読みましたか? – BrenBarn
インデックスを逆にしたいと思っています。詳細については、[the documentation](https://docs.python.org/2/tutorial/introduction.html#strings)を参照してください。 '' [14]でパイソン :S = [15]において、 'ハロー' :S [6:0:-1] OUT [15]: 'OLLE' ' – dmcdougall
はい、私がしましたそれを理解できなかったので、誰かが簡単に説明できるかどうかここで尋ねました。私は 'string [begin:end:step]'だけをクリアして、これがうまくいかなかったはずだということになったのですか? – bawejakunal