Python のリスト

Python のリストの基本操作

リストは [] で要素を囲むことで記述します。

>>> L = [2,4,6,8,10]

リスト内の要素には、インデックスを使ってアクセス可能です。ゼロベースのインデックスです。

>>> L[1]
4

コロン : を使って、要素の範囲指定を行うことによって、元のリストのサブセットのリストを作成できます。

>>> L[1:3]
[4, 6]

+ 演算子によって、二つのリストを結合することができます。

>>> M = L + [1, 3, 5]
>>> M
[2, 4, 6, 8, 10, 1, 3, 5]

結合時にソートなどは自動的には行われません。リスト内の要素をソートするには、sort() 関数を呼びます。

>>> M.sort()
>>> M
[1, 2, 3, 4, 5, 6, 8, 10]

リストの末尾に要素を追加するには append 関数を、末尾から要素を取り出すには pop 関数を用います。 これらの関数によって、リストをスタックのように利用することが可能になります。

>>> M.append(100)
>>> M
[1, 2, 3, 4, 5, 6, 8, 10, 100]
>>> M.pop()
100
>>> M
[1, 2, 3, 4, 5, 6, 8, 10]

リスト内の要素数を取得するには、len 関数を用います。

>>> len(M)
8

関数名だけ見ると len 関数とちょっと紛らわしいかもしれない、と思うのは count 関数でしょう。 こちらは引数で指定した値を持つ要素の数を返します。

>>> [1,1,1,2,3,4,4,5].count(1)
3
>>> [1,1,1,2,3,4,4,5].count(4)
2

異なる型の値も同じ配列中に持つことができます。

>>> L = [ 1, 'Hello', 3.14 ]
>>> L[1]
'Hello'
>>> L[1][1]
'e'

ただし、並べ替えの順序が決まらない場合、 sort は失敗します。

>>> L.sort()
Traceback (most recent call last):
   File "", line 1, in <module>
TypeError: unorderable types: str() < int()

次はオブジェクトリテラルを配列の要素に含む場合です。プロパティ名でオブジェクトの値にアクセスできます。

>>> N = [[1,2,3], 'Hello', {'name':'John Doe','age':37}]
>>> N[0]
[1, 2, 3]
>>> N[1]
'Hello'
>>> N[2]
{'age': 37, 'name': 'John Doe'}
>>> N[2]['name']
'John Doe'

リストの内包表記 (Comprehensions)

Python ではリストの内包表記 (コンプリヘンション, Comprehensions) というのが使えます。これによって簡単に、あるリストを元にして条件に適合する新しいリストを作成できます。

具体例を示します。次のように 1 から 5 までの数字の要素を持つリスト L があったとします。

>>> L = [1,2,3,4,5]

このリスト L の 2 より大きな値を持つ要素のみからなるリストを作るには次のようにします。

>>> [x for x in L if x > 2]
[3, 4, 5]

また、上記の要素をそれぞれ 3 倍するなどの操作を加える場合は次のようにします。

>>> [3*x for x in L if x > 2]
[9, 12, 15]

こうした操作は文字列の配列にも実施できます。次の例では、リスト中の要素それぞれの文字列を、大文字にしています。

>>> L = ['hello','world']
>>> [x.upper() for x in L]
['HELLO', 'WORLD']

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門