0から始めるPython独学ラボ

化学専門の大学生が趣味で始めたPythonをできるだけ分かりやすく説明します

リストについて①

 今回はリストについて取り扱っていきます。

リストについて覚えていますか?

ちょっと作り方を復習していきましょう。

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']

 

以上で今回の記事は終わりです。お疲れさまでした。