多个列表到元组
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)
假设我们有多个值的列表
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)