■複数の配列をまとめて処理
・複数の配列から一度に要素を取得
lsA = [1, 2, 3, 4, 5] lsB = ['a', 'b', 'c', 'd', 'e'] for a, b in zip(lsA, lsB): print(a, b) #出力 # 1 a # 2 b # 3 c # 4 d # 5 e複数のリストから同時に値を取得
lsA = [1, 2, 3, 4, 5] lsB = ['a', 'b', 'c', 'd', 'e'] lsC = ['あ', 'い', 'う'] for a, b, c in zip(lsA, lsB, lsC): print(a, b, c) #出力 # 1 a あ # 2 b い # 3 c うリストの長さが違う場合、最小の長さで実行される
・最大の長さで実行
from itertools import zip_longest lsA = [1, 2, 3, 4, 5] lsB = ['a', 'b', 'c', 'd', 'e'] lsC = ['あ', 'い', 'う'] for a, b, c in zip_longest(lsA, lsB, lsC): print(a, b, c) #出力 # 1 a あ # 2 b い # 3 c う # 4 d None # 5 e Noneitertools.zip_longest()を使うと最大の長さで実行される
足りない値はNoneで補填される
from itertools import zip_longest lsA = [1, 2, 3, 4, 5] lsB = ['a', 'b', 'c', 'd', 'e'] lsC = ['あ', 'い', 'う'] for a, b, c in zip_longest(lsA, lsB, lsC, fillvalue='fill'): print(a, b, c) #出力 # 1 a あ # 2 b い # 3 c う # 4 d fill # 5 e fillfillvalue=で補填する値を指定できる
値は1つのみで、リストごとに別の値を指定することはできない
0 件のコメント:
コメントを投稿