Я пытаюсь рекурсивно вычислять средние значения для каждых двух оценок (для каждого элемента списка).

list = [['2.5', '45'], ['59', '99']]

ИЗМЕНИТЬ:

Я изменил свой алгоритм, и мой код:

def a(lst):
    if lst == []:
        return 0
    else:
        return lst[0] / 2 + a(lst[1:2])


lst = [9.600000000000001, 37.2, 35.6, 34.4]
a(lst)

Он отлично вычисляет средние для первых 2 элементов списка. Мне интересно, как сгенерировать его для всех элементов.

B.Joelene

Ответов: 2

Ответы (2)

пример

lst=[['2.5', '45'], ['59', '99']]
averages=[(float(x)+float(y))/2 for x,y in lst]
print(averages)

Это можно сделать с пониманием списка:

   >>> lst=[['2.5', '45'], ['59', '99']]
   >> avg = [sum(map(float, x))/len(x) for x in lst]
   [23.75, 79.0]

Итак, что происходит в приведенном выше выражении, для каждого подсписка x из lst мы суммируем float значение каждого элемента этого подсписок x и затем ныряя по его длине len, чтобы получить среднее значение

Примечание:

Избегайте именования ваших переменных встроенными именами Python, чтобы не затенять их во время вашего скрипта

2022 WebDevInsider