【Python】リスト等でのコロンの使い方【スライス】
Pythonのリストやタプルなどの配列構造から値を取り出すときにコロン":"を使うと範囲指定ができる。
コロンを使った値の指定をスライス(スライス操作)という。
数字とコロンの組み合わせで値の取り出すパターンが異なる。
パターン① list[ A : B ]
リストのA番目からB番目の前までの値を取り出す。
なんとなくコロンは「~」っぽいイメージ。A~Bまでみたいな感じ。
紛らわしいけど、B番目は含まない。
使用例
list = [0, 1, 2, 3, 4, 5]
list[1:4]
#[1, 2, 3]
パターン② list[ A : ] list[ : B ] list[ : ]
パターン①と比較して数字がどちらか、あるいは両方抜けている。
この場合、数字が抜けている側は終端までを表す。
list[ A : ] だと、A番目から最後まで、
list[ : B ] だと、最初からB番目の前まで、
list[ : ] だと、最初から最後まで、(つまりすべて)を表す。
使用例
list = [0, 1, 2, 3, 4, 5]
list[3:]
#[3, 4, 5]
list[:3]
#[0, 1, 2]
list[:]
#[0, 1, 2, 3, 4, 5]
パターン③ list[ A : B : C ]
コロンが二つあります。「A:B」の部分は今までのパターンと同じでA~B的な意味。
Cの部分はA~Bの範囲を何個おきに選択する、というような設定ができる。
ステップという。
C部分を省略すると、デフォルトで「1」が入ってると見なされる。
使用例
list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list[1:9:2]
#[1, 3, 5, 7]
list[1:9:3]
#[1, 4, 7]
list[1:9:1]
#[1, 2, 3, 4, 5, 6, 7, 8, 9]
list[ : : 2]
#[0, 2, 4, 6, 8]