У меня есть список, содержащий вложенные списки. Некоторые из вложенных списков содержат целые числа, а некоторые из вложенных списков содержат строки. Я хотел бы найти среднее / среднее только для элементов вложенного списка, которые содержат целые числа. Если это означает удаление списка, содержащего строки, с последующим добавлением их обратно, это нормально, но я также не могу найти способ сделать это без индексации.

Список будет выглядеть примерно так:

nested_list = [[217, 208], [4, 7], [2, 2], [325, 390], ['STR', 'STR'], [1, 6], [0, 3],
               ['ING','ING']]
0
Dani Major 14 Сен 2020 в 19:08

3 ответа

Лучший ответ
# importing mean() 
from statistics import mean
 
for list_ in nested_list:   # nested list iteration
    if isinstance(list_[0], int):  # checking integer list type within nested list
        print(mean(list_)) # printing integer list mean
    else:                      # pass the list which is not integer type
         pass
1
BaliDataMan 14 Сен 2020 в 16:21

Просто пролистайте списки и проверьте целые числа, добавьте их в список, а затем вычислите среднее значение из этого списка.

from statistics import mean

def mean_from_nested_list:
    nums = []
    for l in nested_list:
        for item in l:
            if isinstance(item, int):
                sum.append(item)
    return mean(nums)
1
TheBigW 14 Сен 2020 в 16:17