多个列表到元组

multiple list to tuple

假设我们有多个值的列表

myList = [4,5,[7,[3],4],8]

内建的tuple()函数将使:

myList = (4,5[7,[3],4],8)

我认为,它需要递归,问题是数字 4,8 它们会在简单递归中消失。

输出应该是:

myList(4,5,(7,(3,),4),8)

递归实现:

myList = [4, 5, [7, [3], 4], 8]

def tuple_recursive(my_list):
    if isinstance(my_list, list):
        return tuple(tuple_recursive(inner) for inner in my_list)
    else:
        return my_list

print tuple_recursive(myList)

结果:

(4, 5, (7, (3,), 4), 8)

您可以使用以下递归函数:

>>> def convertor(l):
...    return tuple(convertor(tuple(i)) if isinstance(i,list) else i for i in l)
... 
>>> convertor(myList)
(4, 5, (7, (3,), 4), 8)