的簡單方式列表轉換到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