计算包含无类型的列表的平均值和最小值

时间:2019-03-22 02:29:02

标签: python python-3.x list mean min

我必须计算以下列表的平均值:

j=[20, 30, 40, None, 50]

还有这些嵌套列表中的最小值,它们也包括相同的内容:

x = [[20, 30, 40, None, 50], [12, 31, 43, None, 51]]

应该返回[12,30,40,50],但以下代码不起作用。

print(list(map(min, zip(*x))))
TypeError: '<' not supported between instances of 'NoneType' and 'NoneType'

平均而言,我尝试了这个:

import statistics
statistics.harmonic_mean(j)

没有人处理这种类型的列表。

1 个答案:

答案 0 :(得分:2)

您可以过滤掉“无”值以获得平均值和最小值。例如:

from statistics import mean

data = [[20, 30, 40, None, 50], [12, 31, 43, None, 51]]

mean_val = mean(d for d in data[0] if d)
print(mean_val)
# 35

min_vals = [min(a, b) for a, b in zip(*data) if a and b]
print(min_vals)
# [12, 30, 40, 50]