ホームページ > バックエンド開発 > Python チュートリアル > Python の Zip 関数を最長の反復可能長までパディングするにはどうすればよいですか?

Python の Zip 関数を最長の反復可能長までパディングするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-26 10:49:09
オリジナル
273 人が閲覧しました

How Can I Pad Python's Zip Function to the Length of the Longest Iterable?

Zip をパッドまで最大長まで拡張する

Zip は、複数の反復可能オブジェクトを結合する Python の組み込み関数です。ただし、最短の反復可能長で停止します。最長の反復可能長に一致するように結果をパディングしたい場合はどうすればよいでしょうか?

解決策

Python 3 では、itertools.zip_longest がこの機能を提供します。すべてのイテラブルを評価し、デフォルトで None でパディングし、アラインメントを維持します。

a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

list(itertools.zip_longest(a, b, c))

# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
ログイン後にコピー

fillvalue パラメーターを使用してパディング値をカスタマイズできます。

list(itertools.zip_longest(a, b, c, fillvalue='foo'))

# [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
ログイン後にコピー

Python 2 の場合、次のことができます。 itertools.izip_longest (Python 2.6) を使用するか、None:

a = ['a1']
b = ['b1', 'b2', 'b3']
c = ['c1', 'c2']

map(None, a, b, c)

# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
ログイン後にコピー
でマップします。

以上がPython の Zip 関数を最長の反復可能長までパディングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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