Je veux concaténer deux itérateurs de manière efficace.
Supposons que nous ayons deux itérateurs (en Python3)
l1 = range(10) # iterator over 0, 1, ..., 9
l2 = range(10, 20) # iterator over 10, 11, ..., 19
Si nous les convertissons en listes, il est facile de concaténer comme
y = list(l1) + list(l2) # 0, 1, ,..., 19
Cependant, cela peut ne pas être efficace.
Je voudrais faire quelque chose comme
y_iter = l1 + l2 # this does not work
Quelle est la bonne façon de le faire en Python3?
Utilisation itertools.chain
:
from itertools import chain
y_iter = chain(l1, l2)
Il renvoie tous les éléments de l1
puis tous les éléments de l2
. Concaténation efficace de la séquence d'articles cédés. Dans le processus, il consomme les deux.
vous pouvez utiliser la fonction chain () fournie par les outils itertools
itertools.chain ()