
【Python】リストの一部を「切り出して」使いたい:スライス構文
こんにちは!Pythonでアルゴリズムを学ぶには、リストの扱いに習熟しなければならない!ということで、本日も「リスト」の話でございます。テーマは、「スライス構文」です😉!
「ファー!!!!😮」
ちょっと何ですか?ああ、ボールが思いっきり明後日の方向に飛んでいっちゃいましたか、、、ってゴルフのスライスか😅!いや、ここでいう「スライス」は、リストの一部を切り出すことです。なお、英語でSliceは、「(薄く)切り出す」を意味します。
ということで、「スライス構文」は、リスト(やタプル)を部分取得するための構文ということになります。リストの一部分を使いたい、そんな貴方にぜひ必要な構文です~。気になる方は、先をお読みください!😆
スライス構文の書き方
スライス構文は、次のように書きます。
リスト変数[ start : stop : step]
角カッコ内は、添字(インデックス)です。そのインデックスが「start以上、stop未満」の要素で構成されるリストが戻ります。
stepは、添え字の間隔です。省略すれば、連続で要素が取り出されます。「2」と書けば、2つ毎、「一つおき(間が一つ空く)」に取り出されます。
「stop未満とStepか~。このパターンどこかで見たぞ!?🤔」
きっとRange関数ですよね!Range関数は、連番を作成してくれる便利な関数でした。書き方は次の通り。
range(start, stop, step)
似てますね。引数は、start以上、stop未満、そして間隔を表していました。でも区切りに使われる文字が異なります。そこは注意ですね。
では、実際に書いてみよう🙂!
一目瞭然!リストが切り出せた!
次のようなサンプルをご用意しました。スライス構文2つを使って、リストからリストを切り出せたようです。

変数aについては、「dataというリストの0番~5番を切り出したリスト」が格納されました。「6未満」ですから、「5番目まで」ですよ~。うう、間違えそうだ…😭。
変数bについては、「dataというリストの0番~5番を切り出したリストから、2つ毎、値を取り出したリスト」が格納されました。
「2つ毎?一つ置き?日本語が分からん…😑」
気持ちはお察しします。第3引数は、「2」ですから「2つ毎」と理解した方がいいでしょう。私の「2つ毎」のイメージは次の通りです。

ちなみに、オリンピックは、「4年毎、つまり、3年おき」に開催されますね…。あ~もう、コードより日本語の方がややこしいわ!って思っちゃいますね😅。
話が日本語表現にまで派生しましたが、今日はスライス構文でリストの一部を取り出そうというお話しでした~。
あ、コードはこちらです
#リストを作成します。
data = [10,11,12,13,14,15,16,17,18,19]
#0~6番を取り出します
a = data[0:6]
#0~6番を2つ毎(1つ置きに)取り出します
b = data[0:6:2]
#出力します。
print(a)
print(b)
では、ビーダゼーン!
※私のやる気アップとブログの品質向上につながりますので、記事が気に入られた方は、「ポチっ」と好きボタンを押してくださったり、フォローいただけますと幸いです🙇。