これはitertools.chain
で行うことができます。
import itertools
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8]
for i in itertools.chain(l1, l2):
print(i, end = " ")
印刷されますどの:ドキュメントを1として
1 2 3 4 5 6 7 8
を、chain
は以下のん:
イテレータを作成します最初のiterableからexhになるまで要素を返しますすべてのイテラブルが使い果たされるまで、次のイテラブルに進む。
リストにあなたのリストを持っている場合は、itertools.chain.from_iterable
が利用可能です:同じ結果が得られ
l = [l1, l2]
for i in itertools.chain.from_iterable(l):
print(i, end= " ")
。
かなり単純明快であるためにあなたは、関数を書いて、このためのモジュールをインポートしたくない場合は、次の
def custom_chain(*it):
for iterab in it:
yield from iterab
これは、Pythonの2のためのPython 3、必要が戻ったばかりのyield
それらを使用して、ループ:その拡張アンパック一般化と前、パイソン3.5
に加え
def custom_chain(*it):
for iterab in it:
for val in iterab:
yield val
、またリテラルリストで開梱可能:
for i in [*l1, *l2]:
print(i, end=' ')
これは、l1 + l2
よりやや速いですが、まだリストを作成してから投げます。それは最終的な解決策に過ぎません。