让'我们说我们有一些值的多个列表
myList = [4,5,[7,[3],4],8]
内置的tuple()函数将使:
myList = (4,5[7,[3],4],8)
我认为,它需要递归,问题在于数字4,8它们会在简单的递归中消失。
输出应为:
myList(4,5,(7,(3,),4),8)
答案 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)