2017-08-29 5 views
0

Je cherche un moyen propre et pythonique de fusionner des itérations sous une forme générique, sans même connaître leurs types.Solution générique pour fusionner des itératifs tels que des listes, des tuples et des ensembles

>>> l = [0, 1] 
>>> t = (2, 3) 
>>> s = {4, 5} 

Je peux jeter tout en list et les concaténer pour exemple:

>>> res = [] 
>>> for it in (l, t, s): 
...  res += it 
... 
>>> res 
[0, 1, 2, 3, 4, 5] 

Alors vous vous retrouvez avec une fonction d'utilité comme ceci:

def merge_it(*args): 
    res = [] 
    for it in args: 
     res += list(it) 
    return res 

Mais il ne fonctionne pas ça fait du bien ... Y a-t-il quelque chose de plus élégant à faire?

Répondre

3

Il y a itertools.chain à faire:

>>> from itertools import chain 
>>> l = [0, 1] 
>>> t = (2, 3) 
>>> s = {4, 5} 
>>> list(chain(l, t, s)) 
[0, 1, 2, 3, 4, 5]