記事の紹介

この記事ではリストに関する関数に対して扱います。

記事を始める前に

リストは、要素をミュータブルに管理したいとき(順番や内容の変更を自由に替えながら管理)に使われます。新しい要素を追加したり、既に存在する要素を削除したり書き換えることができて、何回も同じ値を登録することもできます。

[]またはlist()による作成

リストは、0個以上の要素をそれぞれカンマで区切って、全体を角かこって囲んで作ります

使用例

empty_list = []
weekdays = [‘Monday’,’Tuesday’,’Wednesday’,’Thursday’,’Friday’]
last_name = [‘sugita’,’tanaka’,’kimura’,’sato’]
first_name = [‘masahiro’,’shinichi’,’yuito’,’shin’]

list()関数で空リストを作る事も出来ます

another_empty_list = list() 

list()によるほかのデータ型からリストへの変換

Pythonのlist()関数は、他のデータ型をリストに変換できます

使用法

list(ほかのデータ型リスト)

使用例

こちらは、文字列を1文字ごとの文字列リストに変換したものです。
以下の例はタプル(次の記事で説明します)をリストに変換したものです。

split()による分割」でも触れたように、split()関数を使えば、何らかのセパレー文字列に基づいて文字列を分割してリストにします。

[offset]を使った要素の取り出し

文字列でもそうでしたが、オフセットを指定すればリストから要素を取り出すことが出来ます。

使用法

list[取り出したい順番のoffset]

使用例

また、文字列の時と同じように、負のインデックスを使うことで、後ろから逆に数えて行くことも出来ます。

リストのリスト

リストは色んな型のデータを格納する事が出来ます。例えば、次のような事も出来ます。

このように設定すると、リストのリストになったdinnerは以下のようになります。

ここで、最初の要素を指定すると以下のような結果が出ます。

中の要素をみて頂くと、最初の要素は上記で指定した”Appetizerリスト”のになっています。次の要素をみて頂くと

上記で指定した2番目の要素の”mainリスト”となってます。ちなみに中のリスト要素から要素を取り出したい時は2個のインデックスを与えれば良いです。たとえば、dinnerリストからbread要素を取り出したい時は

と指定すると良いでしょう。

[offset]による要素の書き換え

オフセットでリスト要素の値を取り出せるのと同じように、オフセットでリスト要素の値を書き換える事もできます

使用法

list[offset] = 変更したい値

使用例

ここでも、リストオフセットは、対象のリストの中で有効なものでなければなりません。たとえば、文字列の場合イミュータブルなので、文字列の文字をこの方法で書き換えることはできません。それに対し、リストはミュータブルなので中の要素を自由自在に換えることが出来ます。

オフセットの範囲を指定してスライスの取り出す方法

スライスを使えば、リストのサブシーケンスを取り出すことが出来ます。

使用法

list[ “スライスを始めたい位置” : “スライスを終えたい位置” ]

使用例

append()による末尾に要素追加

リストに要素を追加するためによく使われるのが、append()関数です。

使用法

list.append(追加したい要素’)

使用例

extend()を使ったリストの結合

extend()を使えば、ふたつのリストを1つにまとめる事が出来ます。(extendsに間違えないように注意しましょう。)

使用法

list.extend(list)

使用例

+=を使ったリストの結合

+=を使ってもextendのように2つのリストを結合することが出来ます

使用法

list += list

使用例

ちなみにappendを使ったら要素が結合されるのではなく、listが結合されてしまうので注意しましょう

insert()によるオフセットを指定した要素の追加

append()関数とは違ってリストにオフセットを指定して、要素を追加することが出来ます。

使用法

list.import(入れたいlistの位置, 入れたい要素)

使用例

delによる指定したオフセットの要素削除

listで要素を指定してリスト内の要素を削除することが出来ます。

使用法

del list[削除したい要素の位置]

使用例

ちなみにdel list[-1]を入力すると一番後ろの要素が削除されます。

remove()による値を直接指定して要素を削除

要素の位置がはっきりしない場合、その要素を直接指定して削除することが出来ます。

使用法

list.remove(‘削除したい要素名’)

使用例

pop()でオフセットを指定して要素を取り出す方法

pop()を使うと、要素を取り出すだけではなく削除する事も出来ます。

使用法

list.pop(取り出したい要素の番号)

使用例

ちなみに、pop(0)を入力するとヘッドの要素を、pop()やpop(-1)を入力すると末尾の要素を返します。

index()で要素のオフセットを判断

要素の値からその要素のオフセットを調べることが出来ます。

使用例

list.index(調べたい要素)

使用法

inを使った値の有無をチェック

Pythonらしくリストに値があるかどうかをテストするには、inを使います

使い方

要素 in list

使用例

count()を使った値の個数を数える

listの中で特定値が何個含まれてるのかを数える時はcount()を使います。

使用法

list.count(要素)

使用例

当然ですが、数えたい要素を入力しないとエラーが起きます。

join()による文字列への変換

String.join()による結合を覚えてますか?特定セパレータで文字列を分割して組み合わせる機能でしたね。

使用法

‘セパレータ’.join(list)

使用例

len()による長さの取得

len()は、リスト内の要素の数を表示します。

使用法

len(list)

使用例

=による代入

ひとつのリストを複数の変数に代入すると、そのなかのひとつでリストを書き換えたときに、他のリストも書き換えられます

使用法

list_1 = list_2

使用例

copy()によるコピー

「=」による代入とは違ってひとつのリストを変更しても他のリストには影響がないコピーのやり方です。

使用法

list_1 = list_2.copy()

使用例

入門Python3 – Pyの組合