初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

リスト

リストについて

今回は、Pythonで最もよく使うであろうリストについて説明していきます。リストは、要素を順番に管理したい時に役立ちます。リストはミュータブルなのでオフセットにより要素を簡単に変更できるので、要素の順序や内容がよく変わるものに向いています。新しい要素の追加や、既存の要素の削除をも簡単に行えます。

リストの作成

リストは、[]またはlist()を使うことにより作成することができます。例を見てみましょう。

>>> sample_list_1 = []
>>> type(sample_list_1)
<class 'list'>
>>> sample_list_2 = [0, 1, 2, 3, 4, 5]
>>> type(sample_list_2)
<class 'list'>
>>> sample_list_3 = ['one', 2, 'three', 4]
>>> sample_list_3
['one', 2, 'three', 4]
>>> sample_list_4 = list()
>>> type(sample_list_4)
<class 'list'>
>>> list('list')
['l', 'i', 's', 't']
>>> sample_tuple = ('l', 'i', 's', 't')
>>> type(sample_tuple)
<class 'tuple'>
>>> list(sample_tuple)
['l', 'i', 's', 't']

きちんとリストが作成されたことがわかります。[]やlist()で作られるものは、空リストです。空リストとは、要素が空のリストのことです。list()関数は、他のデータ型をリストに変更することができます。文字列は1文字ごとの文字列リストに変換しています。また、次回紹介するtupleもリストへと変換されていることがわかります。リストは型が違うものを格納することもできます。

要素の取り出し

文字列と同様に、リストはオフセットを指定することにより、個々の要素を取り出すことができます。

>>> sample_list = ['pen', 'apple', 'pineapple']
>>> sample_list[0]
'pen'
>>> sample_list[1]
'apple'
>>> sample_list[-1]
'pineapple'

オフセットの始まりも文字列と同様に0です。また、負のインデックスを指定することにより末尾からのオフセットを指定することもできます。

リストのリスト

リストはリストの中にリストを作ることができます。

>>> sample_list1 = [1, 2, 3] 
>>> sample_list2 = ['four', 'six', 'five'] 
>>> sample_list2 = ['four', 'five', 'six'] 
>>> sample_list3 = [7, 8, 9] 
>>> sample_list = [sample_list1, sample_list2, sample_list3]
>>> sample_list
[[1, 2, 3], ['four', 'five', 'six'], [7, 8, 9]]
>>> type(sample_list)
<class 'list'>
>>> sample_list[0]
[1, 2, 3]
>>> sample_list[0][0]
1
>>> sample_list[1][0]
'four'
>>> sample_list[2][0]
7

要素へのアクセスはいつも通りオフセットを使用します。今回は、リストのリストなので、第1のインデックスで最初の要素を、第2のインデックスで最初の要素の中の要素を指定することができます。

要素の書き換え

要素の書き換えは単純です。書き換えた要素をオフセットで指定し、そこに新たな値を代入してあげるだけです。

>>> change = list('python')
>>> change
['p', 'y', 't', 'h', 'o', 'n']
>>> change[0] = 'c'
>>> change
['c', 'y', 't', 'h', 'o', 'n']

スライスの利用

リストでも文字列同様にスライスを用いることができます。スライスを用いることにより、リストのサブシーケンスを取り出すことができます。サブシーケンスとは、文字列でいう部分文字列です。

>>> sample = ['orange', 'apple', 'pineapple', 'pen']
>>> sample[0:3]
['orange', 'apple', 'pineapple']
>>> sample[0::3]
['orange', 'pen']
>>> sample[::-1]
['pen', 'pineapple', 'apple', 'orange']

要素の追加

リストに要素を追加する方法には、append()、insert()、extends()があります。

  • list.append(value): listの末尾にvalueを追加する
  • list.insert(offset, value): listにoffsetの前の位置にvalueを追加する
  • list1.extends(list2): list1の後ろにlist2を結合し、リストを1つにまとめる。(+=でも可能)
>>> prime = list()
>>> prime.append(1)
>>> prime.append(2)
>>> prime.append(3)
>>> prime.append(7)
>>> prime.insert(3, 5)
>>> prime
[1, 2, 3, 5, 7]
>>> prime2 = [6, 11, 13, 18, ]
>>> prime.extends(prime2)
# prime += prime2でも同じ
>>> prime
[1, 2, 3, 5, 7, 6, 11, 13, 18]

要素の削除

リストから要素を削除する方法には、del、remove()、pop()があります。

  • del list[offset]: list[offset]の要素を削除する
  • list.remove(value): listの中からvalueに一致する要素を削除する
  • list.pop(offset): listの中からoffsetの位置にある要素を削除する
>>> del prime[0]
>>> prime
[2, 3, 5, 7, 6, 11, 13, 18]
>>> prime.remove(17)
>>> prime
[2, 3, 5, 7, 6, 11, 13]
>>> prime.pop(4)
6
>>> prime
[2, 3, 5, 7, 11, 13]

最後に

今回はここまでです。お疲れ様でした。リストにはまだ他にも多くのメソッドが存在するので調べて見てください。