ここにあなたが使うことができるものがあります。( list(izip_longest(...))
Py2xに使用)
>>> from itertools import chain
>>> from itertools import zip_longest
>>> list(filter(lambda x: x != '', chain.from_iterable(zip_longest(x, y, fillvalue = ''))))
[0, 3, 1, 4, 2]
これは、次のような任意の長さのリストで機能します-
>>> x = [0, 1, 2, 3, 4]
>>> y = [5, 6]
>>> list(filter(lambda x: x != '', chain.from_iterable(zip_longest(x, y, fillvalue = ''))))
[0, 5, 1, 6, 2, 3, 4]
動作についての説明-
zip_longest(...)
with a fill value は、リストを圧縮し、長さが等しくない iterable に対して指定された fill 値を埋めます。したがって、元の例では、次のように評価されます[(0, 3), (1, 4), (2, '')]
- このメソッドはタプルのリストを提供するため、結果を平坦化する必要があります。そのために、
chain.from_iterable(...)
のようなものを使用します[0, 3, 1, 4, 2, '']
。
- を使用
filter(...)
してすべての出現箇所を削除する''
と、必要な答えが得られます。