的简单方式列表转换到Python中的元组是这样的:转换列表来元组也将名单列表内
tuple1=tuple(list1)
但是,如果列表1中包含一个或多个列表,他们保持不变。有什么方法可以将它们转换? 例如
list1=[1,3,'abc',[3,4,5]]
去:
tuple1=(1,3,'abc',(3,4,5))
的简单方式列表转换到Python中的元组是这样的:转换列表来元组也将名单列表内
tuple1=tuple(list1)
但是,如果列表1中包含一个或多个列表,他们保持不变。有什么方法可以将它们转换? 例如
list1=[1,3,'abc',[3,4,5]]
去:
tuple1=(1,3,'abc',(3,4,5))
递归是所有你需要在这里:
def convert(l):
return tuple(convert(x) for x in l) if type(l) is list else l
>>> convert([1,3,'abc',[3,4,5]])
(1, 3, 'abc', (3, 4, 5))
>>> convert([[[[[[]]]]]])
((((((),),),),),)
>>> convert(42)
42
优秀使用递归。它适用于任何级别的嵌套(低于递归限制 - 并非真正的问题)。 –
我认为'isinstance(l,list)'是首选。 – mgilson
@mgilson:不确定。编辑。我认为在这种情况下,你可能不想将列表派生类转换为元组。 – Eric