web-dev-qa-db-fra.com

Comment convertir une liste imbriquée de listes en une liste de tuples en python 3.3?

J'essaie de convertir une liste imbriquée de listes en une liste de tuples en Python 3.3. Cependant, il semble que je n'ai pas la logique pour le faire.

L'entrée ressemble à ci-dessous:

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

Et la sortie souhaitée devrait ressembler exactement comme suit:

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

Utilisez simplement une liste de compréhension:

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

Démo:

>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']]
>>> [Tuple(l) for l in nested_lst]
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]
33
Martijn Pieters

Vous pouvez utiliser map() :

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

Cela équivaut à une compréhension de liste, sauf que map renvoie un générateur au lieu d'une liste.

7
TerryA
[Tuple(l) for l in nested_lst]
3
Ajit George