ホームページ >バックエンド開発 >Python チュートリアル >Python で 2 つのリストを並行して反復するにはどうすればよいですか?

Python で 2 つのリストを並行して反復するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-22 11:28:10178ブラウズ

How Do I Iterate Through Two Lists in Parallel in Python?

2 つのリストを並行して反復処理する方法

2 つのリストが与えられたときの一般的なタスクは、それらをペアで反復処理することです。インデックスの反復処理は実現可能なアプローチですが、最も Python らしい解決策ではない可能性があります。

Python 3 の解決策

Python 3 では、zip() 関数はタプルのイテレータを返します。複数の反復可能オブジェクトを並行して反復するための効率的かつ簡潔な方法。構文は次のとおりです。

for element_1, element_2 in zip(iterable_1, iterable_2):
    ...
for f, b in zip(foo, bar):
    print(f, b)

Python 2 の解決策

Python 2 では、zip() はタプルのリストを返しますが、大規模なデータセットの場合は非効率となる可能性があります。不要な一時変数の作成を避けるために、代わりにイテレータとして itertools.izip() を使用することを検討してください。

import itertools
for f, b in itertools.izip(foo, bar):
    print(f, b)

必要に応じて、 itertools.izip_longest() を使用して、両方のイテラブルが使い果たされるまで繰り返し、不足しているものを埋めることができます。指定された塗りつぶし値 (またはデフォルトでは None) を持つ値。

Keyポイント

  • zip() 関数は複数のイテラブルを同時に反復処理できます。
  • Python 3 では、zip() はタプルのイテレータを返します。
  • Python 2 では、zip() はタプルのリストを返しますが、 itertools.izip() とitertools.izip_longest() は効率を高めるためのイテレータを提供します。

以上がPython で 2 つのリストを並行して反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。