複数のシーケンス型のオブジェクトからリストを作成(zip関数)

広告

複数のシーケンス型のオブジェクトを指定し、各オブジェクトの同じインデックスの要素をタプル型のオブジェクトとし、タプル型のオブジェクトを要素とするリストを作成する方法を確認します。組み込み関数の「zip」を使います。

zip([sequence1, sequence2, ...])

引数に指定したシーケンス型のオブジェクトの同じインデックスの要素を使ってタプル型のオブジェクトを作成とします。そした1つ1つのタプル型のオブジェクトを要素とするリスとを作成します。この時、シーケンス型の要素数が異なっていた場合は一番少ない要素数のリストとなります。

list1 = ["A", "B", "C"]
list2 = [10, 20, 30, 40]

の場合、作成されるリストの各要素は次の通り。

("A", 10)
("B", 20)
("C", 30)

具体的には次のように記述します。

list1 = ["A", "B"]
list2 = [10, 20, 30, 40]

list = zip(list1, list2)
print list  # [("A", 10), ("B", 20)]
サンプルコード

では実際に試してみます。

#coding: UTF-8

list1 = ["A", "B"]
list2 = [10, 20, 30, 40]
str = "Hello"

list = zip(list1, list2, str)
print list

上記を「test14-1.py」として保存します。保存する時の文字コードはUTF-8です。そして次のように実行して下さい。

複数のシーケンス型のオブジェクトからリストを作成(zip関数)

( Written by Tatsuo Ikura )