这里是python的新手.我正在尝试编写一个程序来计算句子中的平均单词长度,我必须使用.split命令来完成.顺便说一句我使用python 3.2
这是我到目前为止所写的内容
sentence = input("Please enter a sentence: ")
print(sentence.split())
Run Code Online (Sandbox Code Playgroud)
到目前为止,我让用户输入一个句子并成功地分割他们输入的每个单词,例如:您好我的名字是Bob,它将其分为['hi','my','name','is','鲍勃']
但现在我迷失了,我不知道如何计算每个单词并找到句子的平均长度.
Tim*_*ker 16
在Python 3中(您似乎正在使用):
>>> sentence = "Hi my name is Bob"
>>> words = sentence.split()
>>> average = sum(len(word) for word in words) / len(words)
>>> average
2.6
Run Code Online (Sandbox Code Playgroud)
您可能希望过滤掉标点符号以及零长度的单词.
>>> sentence = input("Please enter a sentence: ")
Run Code Online (Sandbox Code Playgroud)
过滤掉不计数的标点符号.如果需要,可以在标点符号字符串中添加更多内容:
>>> filtered = ''.join(filter(lambda x: x not in '".,;!-', sentence))
Run Code Online (Sandbox Code Playgroud)
拆分为单词,并删除长度为零的单词:
>>> words = [word for word in filtered.split() if word]
Run Code Online (Sandbox Code Playgroud)
并计算:
>>> avg = sum(map(len, words))/len(words)
>>> print(avg)
3.923076923076923
Run Code Online (Sandbox Code Playgroud)
>>> sentence = "Hi my name is Bob"
>>> words = sentence.split()
>>> sum(map(len, words))/len(words)
2.6
Run Code Online (Sandbox Code Playgroud)