ホームページ >バックエンド開発 >Python チュートリアル >Python の zip() の結果を最長の入力の長さに合わせてパディングする方法は?
Python で圧縮して最長の長さにパディングする方法
Python では、zip() 関数を使用して 2 つの要素を結合します。またはそれ以上の反復可能なオブジェクト。ただし、zip() は最短の入力の長さのみを考慮します。最長の入力の長さに合わせて結果をパディングしたい場合はどうすればよいでしょうか?
itertools.zip_longest
Python 3 では、 itertools.zip_longest() 関数がこれを提供します。機能性。複数のイテラブルを受け取り、イテラブルからの要素を含むタプルを生成するイテレータを返します。None 値で短いイテラブルをパディングします。
import itertools a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] result = list(itertools.zip_longest(a, b, c)) print(result) # Output: [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
fillvalue パラメータ
None の代わりに使用する fillvalue パラメータを指定しますpadding.
result = list(itertools.zip_longest(a, b, c, fillvalue='foo')) print(result) # Output: [('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
Python 2 の代替手段
Python 2 には、次の 2 つのオプションがあります。
result = map(None, a, b, c) print(list(result)) # Output: [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
以上がPython の zip() の結果を最長の入力の長さに合わせてパディングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。