zip
iterableごとに異なるデフォルト値を持つ拡張である「outer-zip」というPython関数はありますか?
a = [1, 2, 3] # associate a default value 0
b = [4, 5, 6, 7] # associate b default value 1
zip(a,b) # [(1, 4), (2, 5), (3, 6)]
outerzip((a, 0), (b, 1)) = [(1, 4), (2, 5), (3, 6), (0, 7)]
outerzip((b, 0), (a, 1)) = [(4, 1), (5, 2), (6, 3), (7, 1)]
mapを使用してこのouterzip関数をほぼ複製できますがNone
、唯一のデフォルトとして:
map(None, a, b) # [(1, 4), (2, 5), (3, 6), (None, 7)]
注 1: 組み込みzip
関数は、任意の数の iterable を使用するため、outerzip
関数も使用する必要があります。(例えば、と とouterzip((a,0),(a,0),(b,1))
同様に計算できるはずです。)zip(a,a,b)
map(None, a, a, b)
注 2:この haskell questionのスタイルで「outer-zip」と言いますが、おそらくこれは正しい用語ではありません。