私はPython文字列
word=helloworldを持っています。word[1:9:2]
の答えは
「elwr」として与えられます。これはどのように起こっていますか?ありがとうございました!!
4 に答える
Pythonのスライス表記の説明を求めています。詳細については、この回答を参照してください。特に、次の点に注意してください。
word = 'helloworld'
word[1:9:2]
...新しいスライスを作成する必要があることを示しています。インデックス1から始まり、インデックス9まで(含まない)、文字列内の2つのインデックスごとに1つの要素を取得します。つまり、次の要素を使用して新しい文字列を作成します。
0 1 2 3 4 5 6 7 8 9
h e l l o w o r l d
^ ^ ^ ^
...そしてそれはあなたが'elwr'
結果として得る方法です。
これは、位置 [1] から位置 [9] までの部分文字列を取得していること、および 2 番目の文字のみを取得していることを意味します。部分文字列は次のようになります。
elloworld
そして、そこからインデックス 2 の文字を取得しているので、次のようになります。
elwr
また、配列ではありません。それはただの文字列です。
array [begin:end:step]
word[1:9:2]
インデックス1から始めて、インデックス9まで、1文字おきに取得することを意味します。
これは配列のスライス -word[start_pos:end_pos:step]
です。ここで、start_pos
とend_pos
はインデックスがゼロでstep
、 は反復ごとにインデックスがインクリメントされる値です。at の文字/要素end_pos
は結果から省略されます。
|h|e|l|l|o|w|o|r|l|d|
0 1 2 3 4 5 6 7 8 9 10
^---------------^
start end
step = 2
あなたの例では、上記の範囲から他のすべての文字を取得するだけです。
>>> word = "helloworld"
>>> word[1]
'e'
>>> word[1:9]
'elloworl'
>>> word[1:9:2]
'elwr'