python について[::1]と[::2]が分かりません。 本に下記記述があるのですが、ステップやスライスを含めて
python について[::1]と[::2]が分かりません。 本に下記記述があるのですが、ステップやスライスを含めて どういうことを言っているのか分からないです。 教えていただければ幸いです。 --------------------------------------- str = '1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9' ■str[::1] ←ステップの値を1にする ↓ '1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9' ←1文字ごとにスライスされるので何も変わらない ■str[::2] ←ステップの値を2にする ↓ '1223456789' ←先頭の文字を含めて2文字ごとにスライスされる ---------------------------------------
プログラミング・29閲覧・25
ベストアンサー
書き方としては[start:stop:step]の構成になります。 簡単な理解としては start: 0から始まる位置 stop: 最後の位置 step: (現在地から)何個移動するか になります。 文字列が str = '1,2,3,4,5,6,7,8,9' の時に str[::1]は start: 指定なし(最初から) stop: 指定なし(最後まで) step: 1(1つ次に移動する。理解としてはstep-1の数だけ飛ばす) という意味になるので出力結果は str[::1] = '1,2,3,4,5,6,7,8,9' になります。 また、str[::2]は startとstopに関しては同様 step: 2(2つ次に移動する。理解としては1つ飛ばす) となるため str[::2] = '123456789' となります。 この利用方法として str[1::2]は str[1::2] = ',,,,,,,,' となります。これはstart位置が1番目(pythonで1番目なので実際は2番目)から2つ移動しては取り出す(1つ飛ばしで取り出す)ためです。
1人がナイス!しています
また、str[::2]は~以降が分からないです。 すみません。 start: 指定なし(最初から) stop: 指定なし(最後まで) step: 2(2つ次に移動する。) なので、str[::2] = '1,3,5,9'と考えてしまうんです・・・
質問者からのお礼コメント
なるほど! 「,」を文字として考えていませんでした。 ありがとうございます!
お礼日時:2020/11/27 2:43