2015-03-26 4 views
-1

Допустим, у нас есть несколько список некоторых значениймножественный список, чтобы кортеж

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

встроенный в кортеже функция() составит:

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

Я думаю, она нуждается в рекурсии, проблема с числами 4,8, они исчезнут в простой рекурсии.

Вывод должен быть:

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

Итак, вы хотите, чтобы выход был следующим: (4,5, (7, (3,), 4), 8) '? –

+0

Почему они исчезнут в рекурсии? – dm03514

+0

Да, вывод хорош, я отправил n-й список в качестве аргумента для рекурсии – Jonatan

ответ

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