banner
满五

满五的博客

Non-Binary | High School | OI | Code | Photography | etc. 独立开发者、摄影/文学/电影爱好者 English/中文,日本語を勉強しています INFP | they
github
twitter_id
email

Python 中的 zip() 和 enumerate()

zip()#

zip() 関数は、イテラブルなオブジェクトを引数として受け取り、対応する要素をタプルにまとめてオブジェクトとして返します。

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = [4, 5, 6]
>>> zipped = zip(a, b, c)
>>> zipped
<zip object at 0x00000278786975C0>
>>> list(zipped)
[(1, 4, 4), (2, 5, 5), (3, 6, 6)]

このように使用すると、複数の配列を同時に反復処理することができます。

>>> for i, j, k in zip(a, b, c):
...     print(i, j, k)
...
1 4 4
2 5 5
3 6 6

配列の長さが異なる場合、最も短い配列の長さに合わせます。

最も長い配列の長さに合わせる場合は、別の関数 zip_longest() を使用することができますが、詳細は省略します。

enumerate()#

enumerate() 関数は、イテラブルなデータオブジェクト(リスト、タプル、文字列など)をインデックスのシーケンスとして組み合わせ、データとインデックスを同時に列挙します。

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

これも反復処理の際に使用することができます。

注意事項#

これらの関数を使用する場合、itertools モジュールをインポートする必要があります。そうしないとエラーが発生します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。