39

我正在尝试将嵌套的列表列表转换为 Python 3.3 中的元组列表。但是,似乎我没有这样做的逻辑。

输入如下所示:

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

所需的输出应如下所示:

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

3 回答 3

64

只需使用列表理解:

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')]
于 2013-09-21T22:23:33.847 回答
13

您可以使用map()

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

这等效于列表推导,除了map返回生成器而不是列表。

于 2013-09-21T22:29:18.277 回答
7
[tuple(l) for l in nested_lst]
于 2013-09-21T22:24:34.603 回答