我得到了一个列表,该列表需要取每个索引的平均值。例如:
lst = ['ABC','DEF','GHIJ']
索引1的长度为3,索引2的长度为3,索引3的长度为4。其平均值或均值大约为3.33(3 + 3 + 4/3 = 3.33)>
到目前为止,我已经尝试过此操作,但由于某种原因,我陷入了如何正确地遍历此操作的问题:
lst = ['ABC','DEF','GHIJ']
for avg in range(len(lst)):
length = len(lst[avg])
sums = sum(a) // len(lst)
哪个返回错误。我尝试切换总和,但是仍然出现错误。
我该如何解决?抱歉,这是一个小问题,但是我有点卡住了。
感谢您的帮助!
答案 0 :(得分:3)
您可以尝试以下方法:
lst = ['ABC','DEF','GHIJ']
avg = sum(len(s) for s in lst) / len(lst)
它基本上采用生成器表达式len(s) for s in lst
的总和,然后将其除以列表的长度。 map
的另一种选择:
avg = sum(map(len,lst)) / len(lst)
答案 1 :(得分:1)
使用
sum(map(len,lst))/len(lst)
3.3333333333333335
另一种方式
len(''.join(lst))/len(lst)
3.3333333333333335
答案 2 :(得分:0)
In [2]: lst = ['ABC','DEF','GHIJ']
In [3]: sum([len(i) for i in lst])/len(lst)
Out[3]: 3.3333333333333335