Рекурсия со списком без использования итерации (для, пока)

Мне нужно работать над функцией, которая включает в себя аргумент вложенного списка, и я не могу использовать операторы for, while в своей работе.

Например, ввод для моей функции:

L = [ [1, 13.0, 0.5, 11.0, 6.0, 9.5, 2.5],
[-1, 6.0, 3.0, 1.5, 2.5, 3.5, 6.5],
[1, 0.5, 2.0, 8.5, 2.0, 8.5, 8.5, 0.5, 8.5],
[1, 3.5, 4.0, 0.7],
[-1, 8.5, 8.5, 5.5, 5.0, 5.5, 8.5, 8.5, 5.0] ] 

как вы видите вложенный список. И без использования for-while я хочу работать с элементами этого списка

Так:

     if len(L[0])==7:

           x= (L[0][1]+L[0][3]+L[0][5])/3
           y=(L[0][2]+L[0][4]+L[0][6])/3

и я хочу перейти от 0 до конца списка, но длина ввода (списка) неизвестна.

Так в чем же дело? Как я могу создать рекурсию здесь?

я имею в виду, что хочу работать со всеми элементами списка, начиная с L[0] до L[1],L[2]..... независимо от того, что указано в качестве входных данных. Обычно я могу использовать итерацию «для», но мне не разрешено ее использовать. Итак, могу ли я создать базу и увеличить ее, как в инструкции for?


person svmszcck    schedule 29.11.2014    source источник


Ответы (1)


Я не уверен, что полностью понимаю, чего вы пытаетесь достичь, но вы можете попробовать использовать что-то вроде

if (gettype(L[0]) == 'array') { //do something }
person Nicolas    schedule 29.11.2014
comment
Я думаю, вы не поняли: D я имею в виду, что хочу работать со всеми элементами списка, начиная с L [0] до L [1], L [2] ..... независимо от того, что указано в качестве входных данных. Обычно я могу использовать для итерации, но мне не разрешено использовать ее. Итак, могу ли я создать базу и увеличить ее, как в инструкции for? - person svmszcck; 29.11.2014