如何将嵌套的元组和列表元组转换为Python中的列表列表?

Dar*_*zer 2 python tuples list

我有一个包含列表和更多元组的元组.我需要将它转换为具有相同结构的嵌套列表.例如,我想转换(1,2,[3,(4,5)])[1,2,[3,[4,5]]].

我该怎么做(在Python中)?

azt*_*tek 16

def listit(t):
    return list(map(listit, t)) if isinstance(t, (list, tuple)) else t
Run Code Online (Sandbox Code Playgroud)

我能想象的最短的解决方案.

  • NicDumZ是正确的,如果您使用python 2.x,但是在3.x中map()返回一个生成器。 (2认同)

Chr*_*yer 8

作为一个python新手,我会尝试这个

def f(t):
    if type(t) == list or type(t) == tuple:
        return [f(i) for i in t]
    return t

t = (1,2,[3,(4,5)]) 
f(t)
>>> [1, 2, [3, [4, 5]]]
Run Code Online (Sandbox Code Playgroud)

或者,如果您喜欢一个衬垫:

def f(t):
    return [f(i) for i in t] if isinstance(t, (list, tuple)) else t
Run Code Online (Sandbox Code Playgroud)

  • 当您需要检查对象的类型时,最好使用isinstance()函数.作为奖励,您甚至可以一次检查多种类型,例如:isinstance(t,(list,tuple)) (5认同)