从列表列表中创建元组元组

时间:2015-07-26 08:25:07

标签: python tuples

我有一个len 20的列表列表,我想动态地从中创建一个相同大小的元组元组,因为元组有点快, 所以我有一个类似

的列表
 my_list=[[1,2,3,4],[5,7,8,9],[7,8,5,3]]

我想创建一个像这样的元组

my_tuple=((1,2,3,4),(5,7,8,9),(7,8,5,3))

我试过

>>> my_tuple=tuple(my_list)

>>> ([1, 2, 3, 4], [5, 7, 8, 9], [7, 8, 5, 3])

并且正在做

>>> for i in my_list:
        my_tuple=my_tuple+tuple(i)

>>> (1, 2, 3, 4, 5, 7, 8, 9, 7, 8, 5, 3)

所以我通过硬编码像

这样的列表项的索引来创建元组
my_tuple=tuple((tuple(my_list[0]),tuple(my_list[1]),tuple(my_list[2])))

有没有办法可以动态创建元组,因为它很长?

2 个答案:

答案 0 :(得分:4)

简单地

>>> my_tuple = tuple(tuple(i) for i in my_list)
>>> print my_tuple
((1, 2, 3, 4), (5, 7, 8, 9), (7, 8, 5, 3))

关于你的元组“更快”的断言,你应该分析你的代码并权衡任何可能的收益与转换成本。通常,当我需要一个不可变的集合时,我会使用tuple

答案 1 :(得分:1)

试试这个

>>>tuple(map(tuple, my_list))
((1, 2, 3, 4), (5, 7, 8, 9), (7, 8, 5, 3))