Python3 – リストとタプル

リストとタプルの表現

[…]でリスト(list)を、(…)でタプル(tuple)を記述する。リストは要素の変更が可能だが、タプルは変更できない。

要素を改行して記述可能で、最後の要素のカンマ(,)は付けても付けなくてもよい。

型の異なる要素を混在させてよい。

要素が一つだけのタプルは、要素の後にカンマ(‘)を付ける必要がある。

入れ子

リスト、タプルは入れ子にできる。リストの要素にタプルがあってもよく、その逆も可能。

リストとタプルの違い

リストの要素は変更できるが、タプルの要素は変更できない。

ただしタプルの要素がオブジェクトの場合、オブジェクトへの参照が変わらなければ、オブジェクトの内容は変更可能。

相互変換

list()関数でタプルをリストに、tuple()関数でリストをタプルに変換可能。

共通操作

要素の個数

要素数はlen()関数で得られる。

要素へのアクセス

インデックスを指定してアクセスできる。最初の要素のインデックスは0となる。

インデックスに負の数を指定すると、-1を最後尾としてそこから前方へカウントする。

forによる順次アクセス

forで個々の要素にアクセスできる。

結合

リスト同士、タプル同士を結合して、新たなリスト/タプルを生成できる。

部分列

  • [n:m]でn番目からm-1番目の要素を取り出した部分列を返す
  • [:m]は先頭からm-1番目まで、[n:]はn番目から最後までの部分列を返す
  • [n:m:s]でn番目~m-1番目の要素をs個おきで返す

n、mにマイナスの値を指定すると、後ろから数える。-1が最後の要素を差し、そこから前へ遡っていく。ただしmに-1を指定すると、その一つ手前の-2番目の要素までが対象となる。

要素の検索

in演算子
要素がリストに含まれているかどうかを判定。
index()メソッド
指定した要素のインデックスを返す。2番目の引数で検索を開始するインデックスを指定可能。要素が存在しない場合はValueError。

リストのみの操作

以下の操作は要素の変更を伴うので、リストのみ可能。

要素の変更

単独要素の置き換えのほか、部分リストを指定した一括置換が可能。置き換えられるリストと置き換えるリストの長さが違う場合、自動的にリストの長さが変更される。

要素の追加・削除

要素の追加

append()メソッド
引数をリストの要素として追加する。
insert()メソッド
インデックスで指定した要素の前に新たな要素を追加する。

要素の削除

del文
添字を指定してリストの要素を削除する。部分リストを指定して削除することも可能。
remove()メソッド
要素そのものを指定して削除する。同じ値の要素が複数存在する場合、最初の要素を削除する。
pop()メソッド
指定した位置の要素を取り出して削除する。先頭要素はゼロ番目、位置指定を省略した場合は最後尾。

リストの拡張

extend()メソッドにより、リストに他のリストの要素を展開して追加できる。

内包表記

内包表記を参照。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です