2

私はPython文字列
word=helloworldを持っています。word[1:9:2]
の答えは
「elwr」として与えられます。これはどのように起こっていますか?ありがとうございました!!

4

4 に答える 4

7

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'結果として得る方法です。

于 2013-02-11T04:15:19.440 に答える
1

これは、位置 [1] から位置 [9] までの部分文字列を取得していること、および 2 番目の文字のみを取得していることを意味します。部分文字列は次のようになります。

elloworld

そして、そこからインデックス 2 の文字を取得しているので、次のようになります。

elwr

また、配列ではありません。それはただの文字列です。

于 2013-02-11T04:20:04.430 に答える
0

array [begin:end:step]

word[1:9:2]インデックス1から始めて、インデックス9まで、1文字おきに取得することを意味します。

于 2013-02-11T04:15:42.890 に答える
0

これは配列のスライス -word[start_pos:end_pos:step]です。ここで、start_posend_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'
于 2013-02-11T04:25:36.290 に答える