我得到了一个列表,我需要取每个索引的平均值。例如: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)返回错误。我尝试切换 sum 但仍然出现错误。我怎样才能解决这个问题?对不起,如果这是一个微不足道的修复,但我有点卡住了。谢谢您的帮助!
3 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
你可以试试这个:
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)
米脂
TA贡献1836条经验 获得超3个赞
使用
sum(map(len,lst))/len(lst)
3.3333333333333335
其它的办法
len(''.join(lst))/len(lst)
3.3333333333333335
萧十郎
TA贡献1815条经验 获得超13个赞
In [2]: lst = ['ABC','DEF','GHIJ']
In [3]: sum([len(i) for i in lst])/len(lst)
Out[3]: 3.3333333333333335
添加回答
举报
0/150
提交
取消