リストについて①
今回はリストについて取り扱っていきます。
リストについて覚えていますか?
ちょっと作り方を復習していきましょう。
a = [1, 2, 3, 4, 5]
このように、数字や文字列をで囲めばリストの完成です。リストはイテラブルなオブジェクトのため、for文で中身を取り出すこともできます。
a = [1, 2, 3, 4, 5]
for x in a:
print(x)
実行結果
1
2
3
4
5
リストは、数字以外にも文字列を入れることもできます。
今回は、インデックスとリストのスライスについて説明していきます。
リストには、文字列同様インデックス(索引)が定義されています。
リストは順番が記憶され、先頭から0,1,2,3......という風にインデックスが割り振られています。実際に例を見ていきましょう。
a = ['apple', 'lemon', 'orange']
print(a[0])
print(a[2])
実行結果
apple
orange
このように、リストにはインデックスが割り振られており、を使ってアクセスすることができます。また、文字列と同様にスライスも存在します。
a = ['apple', 'lemon', 'orange']
print(a[0: 1])
print(a[:2])
print(a[::-1])
実行結果
['apple']
['apple', 'lemon']
['orange', 'lemon', 'apple']
スライスについて解説します。
スライスは
[開始点:終点:取り出し方]
のように指定します。開始点のインデックスから、終点のインデックスの一つ前までの値を取り出します。取り出し方は省略可能で、デフォルトでは1です。取り出し方に2を指定すると、一つ飛ばしで取り出し、取り出し方に3を指定すると二つ飛ばしで取り出し、取り出し方に-1を入れると逆順に取り出します。また、開始点も省略可能で、デフォルトでは0になっています。また、終点を省略すると、最後まで取り出すことができます。このようなスライスは、文字列にも用いることができます。
また、スライスを用いるとインプレイス(その場)で値が変化するのではなく、スライスされたものが戻り値として返されます。そのため、次のようなことが起こります。
a = ['apple', 'lemon', 'orange']
b = a[:2]
a[:2]
print(a)
print(b)
実行結果
['apple', 'lemon', 'orange']
['apple', 'lemon']
つまり、a[:2]という操作を行ったとしても、戻り値が変数に代入されていないため、リストaには変化がありません。また、b = a[:2]という風に操作を行うと、リストaにスライスを行った戻り値がbに代入されます。
このように、スライスはあくまで戻り値を返すものであり、リスト自体には変化を加えません。リスト自体に変化を加えるなら、以下のようにします。
a = ['apple', 'lemon', 'orange']
a = a[::-1]
print(a)
実行結果
['orange', 'lemon', 'apple']
以上で今回の記事は終わりです。お疲れさまでした。