多个列表到元组

时间:2015-03-26 19:49:21

标签: python list recursion tuples

让'我们说我们有一些值的多个列表

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

内置的tuple()函数将使:

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

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

输出应为:

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

2 个答案:

答案 0 :(得分:3)

递归实施:

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)

答案 1 :(得分:3)

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

>>> 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)