リストについて学んでいきましょう。
リストは、複数のデータを整理して扱いたい時に使われます。
リストの作り方
リストは、データを大かっこ[](英語ではsquare bracketと言います)で囲むことで作ることができます。
そして、大かっこの中にコンマ区切りでデータを入れていくことができます。
大かっこ中に入れることができるデータには、整数、浮動小数点数、文字列などがあります。
実際にリストを作ってみましょう。
コード1 list = [1]
2 list = [1, 2, 3]
3 list = [1, 10.15, 'apple']
一つのリストに、異なるタイプのデータ(整数と浮動小数点数など)を入れることができました。
また、リストは入れ子にする(リストの中にリストを入れる)こともできます。実際に入れ子のリストを見てみましょう。
コードlist = [1, [2], ['orange'], [1, 2, 3]]
リストからデータを取り出したい場合
リストは、格納されたデータを柔軟に操作することができます。
まずは、リストからデータを取り出す方法を見ていきましょう。
リストからデータを取り出す場合には[]を使います。
具体的なコードは以下の通りです。
コードlist = ['apple', 'orange', 'grape', 'kiwi']
print(list[0])
アウトプットapple
list[0]という形で、番号を使ってリストの中のデータを取り出すことができました。
あまり使いませんが、リストから直接要素を取り出すこともできます。
コードprint(['apple', 'orange', 'grape', 'kiwi'][0])
アウトプットapple
直接リストから要素を取り出すことができました。
なお、リストからデータを取り出す場合は、先頭のデータは[0]で取り出すということに注意しましょう。
リストの数よりも大きい数はエラーになる
また、リストに入っているデータ以上の数字を取り出そうとすると、エラーになります。
コードprint(list[100])
アウトプットIndexError: list index out of range
index(番号)がリストの範囲外ですよ。というエラーが表示されてしまいました。
インデックスの指定は整数
また、インデックスの指定は必ず整数でなければいけません。
コードprint(list[1.1])
アウトプットTypeError: list indices must be integers or slices, not float
インデックスの指定は、整数又はスライスでなければならず、浮動小数点数ではいけません。というエラーが出てしまいました。
スライスについては後ほど説明します。
入れ子になっているリストで、データを指定する方法
次に、入れ子になっているリストでデータを指定する方法について見ていきましょう。
入れ子になっているリストでデータを指定するためには、[]を2回使います。これも具体例を見た方がイメージが湧きやすいと思いますので、具体例でみていきましょう。
コード1 list = [1, 2, 3, [10, 11, 12]]
2 print(list[3][0])
アウトプット10
上記のリストには、1、2、3、[10, 11, 12]という4つのデータが入っていると考えます。
ここではlist[3]とまず指定していますので、[10, 11, 12]というデータを指定していることになります。
そして、list[3][0]と、[0]で[10, 11, 12]というデータの中の一番目のデータを取り出すという指示をしていますので、結果10が取り出されたのです。
インデックスにはマイナスを使うこともできる
また、リストからデータを取り出す時は、マイナスの数字を使うこともできます。
実際に使ってデータを取り出してみましょう。
コード1 list = ['apple', 'orange', 'grape', 'kiwi']
2 print(list[-1])
アウトプットkiwi
[-1]と指定することで、最後の要素を取り出すことができました。
ちなみに、正の整数を使った場合は最初の要素は0でしたが、負の整数を使った場合は最後の要素は-1でした。
これは、このようなイメージで考えると分かりやすいと思います。
リストのスライス
次に、リストのスライスについてみていきましょう。
リストのスライスとは、その名のイメージの通り、リストの中のデータを切り取る(スライスする)ことです。
具体例で見ていきましょう。
コード1 list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 print(list[5:])
アウトプット[5, 6, 7, 8, 9, 10]
このコードで何が行われているのか、見ていきましょう。
まず、スライスを使うには、:を使います。
「数字:」でその数字以降、「:数字」でその数字より前を指定するというイメージです。
上記の例では、5:というコードでした。つまり、5番目より先(5以降)を切り取ると指示しているのです。
なお、インデックスは0から始まりますので、5番目のデータは4です。なので、6番目のデータである5から数字が表示されました。
以下の図で考えると分かりやすいと思います。
2つの数字を使うこともできる
スライスでは、2つの数字をつかって切り取るデータを指定することもできます。
具体例で見ていきましょう。
コード1 list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2 print(list[2:5])
アウトプット[2, 3, 4]
今回は、2:5という形で指定をしました。
これは、2:が2より先、:5が5よりも前を意味しますので、2~4の3つの整数が出力されたのです。
これもイメージで確認してみましょう。
2つの数字をつかったデータのスライスがイメージしやすくなるのではないかと思います。
リストのまとめ
(1) 大かっこを使うことでリストを作ることができる
(2) リストは入れ子(リストの中にリストを作る)こともできる
リストを学んだ後は
同じく複数のデータを格納することができるタプルについて学んでいきましょう。