Python 从列表列表创建元组的元组
我有一个len 20的列表,我想动态地创建一个相同大小的元组,因为元组要快一点, 所以我有一个类似的列表Python 从列表列表创建元组的元组,python,tuples,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])
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])))
有没有一种方法可以动态创建元组,因为它很长???很简单
>>> 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))
关于元组“更快”的说法,您应该对代码进行分析,并根据转换成本权衡任何可能的收益。通常,当我需要一个不可变的集合时,我会使用一个元组
>>> 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(map(tuple, my_list))
((1, 2, 3, 4), (5, 7, 8, 9), (7, 8, 5, 3))
试试这个
>>>tuple(map(tuple, my_list))
((1, 2, 3, 4), (5, 7, 8, 9), (7, 8, 5, 3))
元组并没有快一点。它们是不同类型的对象,不允许更改(它们是不可变的)。在需要该属性时使用它们,而不是因为它们可能更快。这是过早的优化。元组的速度并没有快一点。它们是不同类型的对象,不允许更改(它们是不可变的)。在需要该属性时使用它们,而不是因为它们可能更快。这是过早的优化。我最初投了反对票,因为你正在生成一个元组列表。更正后,我用赞成票替换了反对票。没有时间编辑。快速向下投票:请注意,从
map
函数生成的列表
转换为元组
效率低下。我最初向下投票是因为您生成了元组列表。更正后,我用赞成票替换了反对票。没有时间编辑。快速向下投票:请注意,从映射
函数生成的列表
转换为元组
效率低下。