Python

Python基礎講座(5 リスト・タプル)

More than 1 year has passed since last update.

リスト

Pythonのリスト(List)は1つのリストに数値、文字列、リストなど様々な型の
データを格納することが出来ます。定数も変数も要素にすることが可能です。

l = ['a', 'b', 'c']
X = [1, 2, 3.4, "a", l]

Xには [1, 2, 3.4, "a", ['a', 'b', 'c']] が格納されます。
リストは[ ]で括って、各要素は,で区切ってください。
以下のプログラムをコピーして、実行してください。それぞれの機能を説明します。

list_explain
z = ['a','b','c']
x = [1, 2, 3.4, "a", z]
a_in_list = 'a' in z
d_in_list = 'd' in z
print("a_in_list {0}".format(a_in_list))
print("d_in_list {0}".format(d_in_list))
print("len(z) {0}".format(len(z)))
print("max(z) {0}".format(max(z)))
print("min(z) {0}".format(min(z)))
print("x[1] {0}".format(x[1]))
print("x[-1] {0}".format(x[-1]))
print("x[1:3] {0}".format(x[1:3]))
print("x[1:] {0}".format(x[1:]))
print("x[:3] {0}".format(x[:3]))
x[1:4] = ["taro","jiro"]
print("changed x {0}".format(x))
a = z + x
print("a {0}".format(a))

y = [] #create empty list
y.append("spam")
print("y {0}".format(y))
y.append("ham")
print("y {0}".format(y))
y2 = ["egg","ham"]
y.append(y2)
y.remove('ham')
print("y {0}".format(y))

z.reverse()
print("z {0}".format(z))

sortlist = [0,1,3,7,5]
sortlist.sort()
print("sort {0}".format(sortlist))

リスト内の要素の存在確認

文字列型と同様に、リストもx in リストでリスト内に要素が存在するかを確認できます。

インデックシング

文字列型と同様に、リストもx番目の要素を取得することができます。

len(リスト)、max(リスト)、min(リスト)

文字列と同様の処理が要素に対して行うことができます。

範囲を指定しての要素を差し替え

x = [1, 2, 3.4, "a", z]
に対して、
x[1:4] = ["taro","jiro"]
と記述することで、
[1, 'taro', 'jiro', ['a', 'b', 'c']]
このようにリストの内容を変更することが出来ます。
元々のリストの[1:4]の部分である[2, 3.4, "a"]つまり3つの要素が
差し替えの結果["taro", "jiro"]の2つになっています。
この”範囲を指定しての要素を差し替え”はリストに対しては可能ですが、文字列型はサポートしていません。

要素の追加

リスト.append(要素)でリストに要素を追加できます。
要素はリストでも可能です。この場合リストにリストを連結する処理となります。
プログラムからも分かるように、記号"+"でも同じ処理を行うことが出来ます。

要素の削除

リスト.remove(要素)でリストから要素を削除できます。
リストは同じ要素を複数格納することが出来ますが、指定した要素が複数存在する場合は
最初の要素を削除します。
存在しない要素を削除しようとした場合はエラーが発生します。
inを使用して事前に存在することを確認した後、remove()を行うと安全です。

リストの逆順

リスト.reverse()でリストの要素の順番を逆にすることが出来ます。

リストのソート

リスト.sort()でリスト内の要素を順番に並べ替えることが出来ます。

タプル

タプルはリストに非常によく似ています。
[ ] ではなく( )で括ります。

tuple = (1,2,3.4,"a","test")

リストと同じように要素の存在確認や、インデックシング、len、min、maxは使用できますが、
要素の差し替えや要素の追加、削除は出来ません。
それでは、要素の変更が出来ないタプルを使用する理由はあるのでしょうか?

タプルを使用するメリットは、プログラムの実行速度が少し速いため、
内容が変わらないリストを用意したい場合はタプルも選択肢に入れることが出来ます。
他にもタプルを使用するメリットはありますが、それについては後述します。

次: Python基礎講座(6 セット)