如何在python 3.3中将嵌套列表转换为元组列表?

How to convert nested list of lists into a list of tuples in python 3.3?

提问人:Mohammed 提问时间:9/22/2013 最后编辑:Martijn PietersMohammed 更新时间:5/6/2022 访问量:34396

问:

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

输入如下所示:

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

所需的输出应如下所示:

nested_lst_of_tuples = [('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]
列表 元组 嵌套列表 类型转换

评论


答:

68赞 Martijn Pieters 9/22/2013 #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')]

评论

0赞 z33k 11/5/2021
如果每个项目的嵌套级别未知怎么办?好吧,皮特斯先生已经在这里回答了这个问题:)
7赞 Ajit George 9/22/2013 #2
[tuple(l) for l in nested_lst]
13赞 TerryA 9/22/2013 #3

你可以使用 map()

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

这等同于列表推导式,只不过返回生成器而不是列表。map

1赞 ranga abi 5/6/2022 #4

我使用列表推导作为解决方案,以下是我的风格

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

nested_new_list =[(i,j) for i,j in nested_lst]

print(nested_new_list)

output : [('tom', 'cat'), ('jerry', 'mouse'), ('spark', 'dog')]