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 サイトの他の関連記事を参照してください。