Python リスト(List)

シーケンスはPythonで最も基本的なデータ構造です。シーケンス内の各要素には数字(その位置、つまりインデックス)が割り当てられ、最初のインデックスは0、2番目のインデックスは1、以降同様です。

Pythonには6つの組み込みシーケンス型がありますが、最も一般的なのはリストとタプルです。

シーケンスで実行できる操作には、インデックス、スライス、加算、乗算、メンバー検査が含まれます。

さらに、Pythonにはシーケンスの長さを決定し、最大および最小の要素を決定するメソッドが組み込まれています。

リストは最もよく使われるPythonデータ型であり、角括弧内にカンマ区切りの値として表すことができます。

リストのデータ項目は同じ型である必要はありません。

リストを作成するには、カンマで区切った異なるデータ項目を角括弧で囲むだけです。次のようにします。

list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"]

文字列のインデックスと同様に、リストのインデックスは0から始まります。リストはスライスや結合などを行うことができます。


リストの値にアクセスする

インデックス番号を使ってリストの値にアクセスできます。同様に角括弧を使ってスライスすることもできます。次のようになります。

例(Python 2.0+)

#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7 ] print "list1[0]: ", list1[0] print "list2[1:5]: ", list2[1:5]

上記の例の出力結果:

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

リストの更新

リストのデータ項目を変更または更新できます。また、append()メソッドを使ってリスト項目を追加することもできます。次のようになります。

例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- list = [] ## 空リスト list.append('Google') ## append() を使用して要素を追加 list.append('サンプル') print list

注意:次の章でappend()メソッドの使い方について説明します。

上記の例の出力結果:

['Google', 'サンプル']

リストの要素を削除

del文を使ってリストの要素を削除できます。次の例のとおりです。

例(Python 2.0+)

#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] print list1 del list1[2] print "After deleting value at index 2 : " print list1

上記の例の出力結果:

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

注意:次の章でremove()メソッドの使い方について説明します。


Pythonリストのスクリプト演算子

リストの + 演算子と * 演算子は文字列と似ています。+ はリストの結合に使用され、* はリストの繰り返しに使用されます。

次のように示します。

Python式結果説明
len([1, 2, 3])3長さ
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]結合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']繰り返し
3 in [1, 2, 3]True要素がリストに存在するかどうか
for x in [1, 2, 3]: print x,1 2 3反復

Pythonリストのスライス

Pythonのリストスライスの例は次のとおりです。

>>>L = ['Google', 'サンプル', 'Taobao'] >>> L[2] 'Taobao' >>> L[-2] 'サンプル' >>> L[1:] ['サンプル', 'Taobao'] >>>

説明:

Python式結果説明
L[2]'Taobao'リストの3番目の要素を読み取る
L[-2]'サンプル'リストの最後から2番目の要素を読み取る
L[1:]['サンプル', 'Taobao']2番目の要素からリストをスライスする

Pythonリストの関数&メソッド

Pythonには次の関数があります。

番号関数
1cmp(list1, list2)
2つのリストの要素を比較する
2len(list)
リストの要素数
3max(list)
リストの要素の最大値を返す
4min(list)
リストの要素の最小値を返す
5list(seq)
タプルをリストに変換する

Pythonには次のメソッドがあります。

番号メソッド
1list.append(obj)
リストの末尾に新しいオブジェクトを追加する
2list.count(obj)
リスト内の特定の要素の出現回数を数える
3list.extend(seq)
リストの末尾に別のシーケンスの複数の値を一度に追加する(元のリストを新しいリストで拡張する)
4list.index(obj)
リストから特定の値に一致する最初の要素のインデックス位置を見つける
5list.insert(index, obj)
リストにオブジェクトを挿入する
6list.pop([index=-1])
リスト内の要素を削除し(デフォルトでは最後の要素)、その要素の値を返す
7list.remove(obj)
リスト内の特定の値に一致する最初の要素を削除する
8list.reverse()
リスト内の要素を逆順にする
9list.sort(cmp=None, key=None, reverse=False)
元のリストをソートする
その他の拡張