ホームページ > バックエンド開発 > Python チュートリアル > Python で ZIP 形式のリストをパディングして最長の長さに一致させるにはどうすればよいですか?

Python で ZIP 形式のリストをパディングして最長の長さに一致させるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-28 07:30:13
オリジナル
628 人が閲覧しました

How Can I Pad Zipped Lists in Python to Match the Longest Length?

zip 形式のリストを最長の長さにパディングする

Python プログラミングの領域では、zip() 関数は複数の反復可能オブジェクトをシームレスにマージして、タプル。ただし、結果として得られるリストの長さは、最短の入力によって制限されることがよくあります。この制限を克服し、リストを最長の入力の長さに合わせて埋め込むには、代替ソリューションを探す必要があります。

itertools.zip_longest: The Perfect Fit

Python 3 が公開この目的のために特別に設計された関数である itertools.zip_longest の能力。短い入力に None 値をシームレスに埋め込み、リストを最長の反復可能長まで効果的に拡張します。

説明のための例を次に示します。

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

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

print(result)
ログイン後にコピー

出力:

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

パディングのカスタマイズValue

zip_longest 関数は、fillvalue パラメーターを使用してカスタム パディング値を指定する柔軟性を提供します。これにより、パディング メカニズムをさらに制御できるようになります。

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

print(result)
ログイン後にコピー

出力:

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

Python 2.x: 代替アプローチ

同等のソリューションを求める Python 2.x ユーザーは、 itertools.izip_longest (以下で入手可能) を利用できます。 Python 2.6 ) または、代わりに None を指定したマップを使用します。

result = list(map(None, a, b, c))

print(result)
ログイン後にコピー

出力:

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

以上がPython で ZIP 形式のリストをパディングして最長の長さに一致させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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