【Python】リストからタプルのリストを作成する
Pythonでリストからタプルのリストを作りたい場合、例えば[1,2,3,4,5,6]
というリストがあって、これを[(1,2),(3.4),(5,6)]
のようなタプルのリストにしたい場合は以下のように書くのが楽です。
listA = [1,2,3,4,5,6] listB = zip( listA[::2], listA[1::2] ) print listB # [(1, 2), (3, 4), (5, 6)]
2個ずつのタプルではなく、3個ずつのタプルにしたい場合は以下のようにします。
listA = [1,2,3,4,5,6] listB = zip( listA[::3], listA[1::3], listA[2::3] ) print listB # [(1, 2, 3), (4, 5, 6)]
スライスのコストが気になる場合は、itertools.islice
を使うのが良いかもしれません。
import itertools listA = [1,2,3,4,5,6] listB = zip( itertools.islice( listA, 0, None, 2 ), itertools.islice( listA, 1, None, 2 ) ) print listB # [(1, 2), (3, 4), (5, 6)]
リンク
Python2.7ドキュメント