ホームページ > バックエンド開発 > Python チュートリアル > Python リストで重複するペアを効率的に反復するにはどうすればよいですか?

Python リストで重複するペアを効率的に反復するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-14 14:13:10
オリジナル
563 人が閲覧しました

How Can I Efficiently Iterate Over Overlapping Pairs in Python Lists?

重複するペアを反復するためのスライディング ウィンドウ手法

Python でリストを操作する場合、多くの場合、要素の重複するペアを反復する必要があります。 。一般的なアプローチは、zip と zip[1:] を使用して、リスト内を独立して進む 2 つの反復子を作成することです。ただし、同じ結果を達成するためのより効率的または慣用的な方法がある可能性があります。

Itertools ペアワイズ関数

Python 3.8 では、itertools モジュールからペアワイズ関数が導入されています。この関数は反復可能を受け取り、要素の重複ペアを生成する反復子を返します。

Python バージョン 3.8 より前の場合、次の tee を使用して同様の関数を実装できます。

def pairwise(iterable):
    "s -> (s0, s1), (s1, s2), (s2, s3), ..."
    a, b = itertools.tee(iterable)
    next(b, None)
    return zip(a, b)
ログイン後にコピー

利点ペアワイズ

ペアワイズ関数には、従来の zip に比べていくつかの利点があります。アプローチ:

  • zip アプローチではイテレータが 2 つだけ作成されますが、zip アプローチではイテレータが 3 つ作成されます。
  • tee 関数の n パラメータを使用して、任意のサイズのスライディング ウィンドウを生成するように簡単に適応できます。
  • これは組み込み関数であるため、カスタム関数よりも効率的です

結論

従来の zip アプローチは機能しますが、ペアワイズ関数は、重複する要素のペアを反復処理するためのより効率的で慣用的な方法を提供します。パイソン。これは、処理または分析のためにデータのスライディング ウィンドウを作成する場合に特に役立ちます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート