只取出整数来求和并创建一个平均的python



嗨,我的函数打印输出是

average = ['2.06556473829 is the average for a', 
           '1.48154269972 is the average for b', 
           '1.56749311295 is the average for c',
           '2.29421487603 is the average for d', 
           '1.51074380165 is the average for e', 
           '1.46997245179 is the average for f', 
           '1.15950413223 is the average for g', 
           '1.94159779614 is the average for h', 
           '1.48236914601 is the rainfall average for i',
           '1.2914600551 is the average for j']

我想做的是只取列表中的所有整数,即2.06555,1.222等。将它们全部相加,然后将总和除以列表中的项数,并输出结果

目前我有一个总变量

total= sum(int(average))/len(average)
print total 

然而,我的代码似乎不允许我挑选出所有的整数和它们的总和。有没有一种方法可以让我只挑出整数求和然后求平均值?

谢谢你的帮助

>>> average = ['2.06556473829 is the average for a', '1.48154269972 is the average for b', '1.56749311295 is the average for c', '2.29421487603 is the average for d', '1.51074380165 is the average for e', '1.46997245179 is the average for f', '1.15950413223 is the average for g', '1.94159779614 is the average for h', '1.48236914601 is the rainfall average for i', '1.2914600551 is the average for j']
>>> avgs = [float(x.split()[0]) for x in average]
>>> sum(avgs)/len(avgs)
1.626446280991

获取列表中数字的int值的平均值:

>>> avgs = [ int(float(x.split()[0])) for x in average]
>>> sum(avgs)/float(len(avgs))
1.2

你也可以使用regex来获取整数:

>>> import re
>>> [ int(re.search(r'd+',x).group(0)) for x in average]
[2, 1, 1, 2, 1, 1, 1, 1, 1, 1]

相关内容

最新更新