週末SEのメモブログ

日曜大工ならぬ日曜SEの備忘録

第8回:Pythonプログラミング入門 List(リスト)

リストの前にコンテナの概念について、紹介します。

コンテナは本棚のようなものでデータ構造を保持しています。

 

リストは好きな順番でオブジェクトを保持できるコンテナの一部です。

リストを作成する際は下記のどちらかの方法で作成できます。

hoge = list()

# または

hoge = [ ]  

 どちらもリストを作成できますが、後者では、リストの中に要素を入れた状態のリストを作成することができます。

要素はカンマで区切り複数設定する事ができます。

hoge = ["Apple", "Banana", "Orange"] 

 上記の hoge というリストには、"Apple"、"Banana"、"Orange"という3つの文字列の要素が順番に格納されます。

コンテナに格納されるオブジェクトには、インデックスと呼ばれるコンテナ内での位置を表す印があります。インデックスは順番の認識でOKです。

ちなみにインデックスは0から始まるので注意してください。

上の例で続けます。

hoge = ["Apple", "Banana", "Orange"] 

hoge[0]

hoge[1]

hoge[2]

 角カッコ内にインデックスを指定することで、その位置に格納された値が取得されます。この例では、’Apple’、’Banana’、’Orange’がそれぞれ出力されます。

もし存在しないインデックスを指定(例えば、hoge[4])してしまうと先に紹介した例外(IndexError: list index out of range)が発生します。

 

上記では文字列しか設定しませんでしたが、Pythonのリストでは、同時にどんなオブジェクトでも格納することができます。

 

fuga = []

fuga.append("Apple")

fuga.append(100)

fuga.append(100.1)

fuga.append(True) 

javaでは、異なるデータ型の値をリストに格納することはできませんね。

余談ですが、リストのように繰り返し処理で要素(値)を1つずつ取得できるオブジェクトはイテラブル(繰り返し可能)と言われます。 

 

また、リストは一度値を格納した後でも変更可能(ミュータブル)です。

ミュータブルなコンテナは値を追加・変更・削除することが可能です。

hoge = ["Apple", "Banana", "Orange"] 

hoge[1] = "Grape"

 このように任意のインデックスの値を、上記の例では2番目の"Banana"を"Grape"に変更しています。

削除については、例えば、リストの末尾から要素を取り除く場合は、popというメソッドを利用します。

hoge = ["Apple", "Banana", "Orange"] 

hoge.pop() 

hoge

 上記の例では末尾の”Orange”が取り除かれ、"Apple"、"Banana"が出力されます。

 

リスト内にいくつの要素が含まれているかを確認するときは、len関数を使用します。

hoge = ["Apple", "Banana", "Orange"] 

len(hoge)

ある要素がそのリストに含まれるかを確認するときはin演算子を利用します。

 hoge = ["Apple", "Banana", "Orange"] 

"Grape" in hoge

 この例では False が返ってきます。

最後にリストはプラス演算子を使用することで連結できます。

hoge = ["Apple", "Banana", "Orange"] 

fuga = ["Grape", "Peach", "Strawberry"] 

hoge + fuga

上記では、['Apple', 'Banana', 'Orange', 'Grape', 'Peach', 'Strawberry']が出力されます。