2013-09-21 11 views
14

Sto provando a convertire un elenco annidato di liste in un elenco di tuple in Python 3.3. Tuttavia, sembra che non abbia la logica per farlo.Come convertire l'elenco annidato di liste in una lista di tuple in python 3.3?

L'ingresso si presenta come di seguito:

>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']] 

E l'ouptput desiderato dovrebbe guardare come esattamente come segue:

nested_lst_of_tuples = [('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 

risposta

22

Basta usare una lista di comprensione:

nested_lst_of_tuples = [tuple(l) for l in nested_lst] 

Demo:

>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']] 
>>> [tuple(l) for l in nested_lst] 
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 
2
[tuple(l) for l in nested_lst] 
5

È possibile utilizzare map():

>>> list(map(tuple, [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']])) 
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')] 

Ciò equivale a una lista di comprensione, se non che map restituisce un generatore invece di una lista.

Problemi correlati