zip()を使った反復処理 - Python
Pythonにはzip()
関数がある。
これは複数のシーケンスを並行して処理をするときに使える。
例)forで使う。
>>> days = ['月曜日', '火曜日', '水曜日'] >>> fruits = ['バナナ', 'オレンジ', 'ピーチ'] >>> drinks = ['コーヒー', 'お茶', 'ビール'] >>> desserts = ['ティラミス', 'アイス', 'パイ', 'プリン'] >>> for day, fruit, drink, dessert in zip(days, fruits, drinks, desserts): ... print(f'{day}: {fruit}を食べる。{drink}を飲む。{dessert}で楽しむ。') ... 月曜日: バナナを食べる。コーヒーを飲む。ティラミスで楽しむ。 火曜日: オレンジを食べる。お茶を飲む。アイスで楽しむ。 水曜日: ピーチを食べる。ビールを飲む。パイで楽しむ。
zip()は一番要素数が小さいシーケンスに合わせて止まる。そのため、プリン
は処理されていない。
dictを作成するときにもzip()関数を使える。
>>> dict(zip(days, fruits)) {'月曜日': 'バナナ', '火曜日': 'オレンジ', '水曜日': 'ピーチ'}
リストを作成するときにも使える。
>>> list(zip(days, fruits, drinks)) [('月曜日', 'バナナ', 'コーヒー'), ('火曜日', 'オレンジ', 'お茶'), ('水曜日', 'ピーチ', 'ビール')]
気になって調べてみたら、zip()関数で作成できるのはzipクラスのオブジェクトだった。勝手にタプルとかかと思ってた。
>>> type(zip()) <class 'zip'>
参考文献
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る