Как преобразовать вложенный список списков в список кортежей в python 3.3?
Я пытаюсь преобразовать вложенный список списков в список кортежей в Python 3.3. Однако, похоже, у меня нет логики для этого.
Вход выглядит следующим образом:
>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']]
И желаемая функция должна выглядеть так, как показано ниже:
nested_lst_of_tuples = [('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]
Ответы
Ответ 1
Просто используйте понимание списка:
nested_lst_of_tuples = [tuple(l) for l in nested_lst]
Демо:
>>> nested_lst = [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']]
>>> [tuple(l) for l in nested_lst]
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]
Ответ 2
Вы можете использовать map()
:
>>> list(map(tuple, [['tom', 'cat'], ['jerry', 'mouse'], ['spark', 'dog']]))
[('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]
Это эквивалентно пониманию списка, за исключением того, что map
возвращает генератор вместо списка.
Ответ 3
[tuple(l) for l in nested_lst]