【发布时间】:2015-04-02 13:25:21
【问题描述】:
我正在尝试使用 reduce 获取文件中单词的平均长度,但我收到以下错误“TypeError:'int' 类型的对象没有 len()”,我发现这令人费解,因为文件已被填充用单词,我只是得到每个单词的长度
def averageWord():
myWords = open('myfile.txt', 'r').read().split(' ')
avg = (reduce(lambda x,y: len(x) + len(y) ,myWords)) / len(myWords)
print avg
【问题讨论】:
-
将
sum()与生成器表达式一起使用,而不是reduce。使用reduce会变得不必要地复杂:reduce(lambda x, y: x + len(y), myWords, 0)。 -
为什么只有第二个参数调用了len,为什么最后一个参数是0?
标签: python