Ребята, нужна помощь! Есть список списков в Python, и мне нужно найти
среднее значение каждого вложенного списка. Какой самый простой и
эффективный способ это сделать? У кого-нибудь есть примеры кода или
советы? Пожалуйста, поделитесь!
Ребята, нужна помощь! Есть список списков в Python, и мне нужно найти
среднее значение каждого вложенного списка. Какой самый простой и
эффективный способ это сделать? У кого-нибудь есть примеры кода или
советы? Пожалуйста, поделитесь!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Если у тебя есть список списков, самое простое, что можно сделать, это
использовать list comprehension. Например так:
Программный код:
nested_list = [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
averages = [sum(sublist) / len(sublist) for sublist in nested_list]
print(averages) # Выведет: [1.5, 4.0, 7.5]
Да, list comprehension - отличный способ! Вроде просто и понятно.Сообщение от konok
Можно ещё использовать numpy для таких задач. Весьма эффективно, особенно
если работаешь с большими данными.
Программный код:
import numpy as np
nested_list = [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
averages = [np.mean(sublist) for sublist in nested_list]
print(averages) # Выведет: [1.5, 4.0, 7.5]
Неплохо! numpy реально может ускорить процесс, особенно на крупных списках.Сообщение от Мария Обухова
Вы, конечно, можете сделать это с помощью стандартных средств языка Python,
но также следует помнить о обработке исключений. Например, если вдруг встретится
пустой список внутри твоего списка списков:
Программный код:
nested_list = [[1, 2], [], [6, 7, 8, 9]]
averages = []
for sublist in nested_list:
if len(sublist) == 0:
averages.append(float('nan'))
else:
averages.append(sum(sublist) / len(sublist))
print(averages) # Выведет: [1.5, nan, 7.5]
О, отличный поинт про обработку пустых списков! За это реально можно забыть.Сообщение от Настя
Привет! Вот полный вариант с пояснениями:
Это позволит тебе обработать даже пустые вложенные списки и не вызывать ошибки.Программный код:
def calculate_averages(nested_list):
averages = []
for sublist in nested_list:
if not sublist:
averages.append(0) # Или другое значение по умолчанию
else:
averages.append(sum(sublist) / len(sublist))
return averages
nested_list = [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
result = calculate_averages(nested_list)
print(result) # Выведет: [1.5, 4.0, 7.5]
Спасибо за подробный пример! Так можно легко переиспользовать функцию.Сообщение от FlameSpirit