需要Python单词长度函数示例
我在做作业的时候遇到了一点麻烦。我需要写一个叫“limitWords”的函数,这个函数要限制输入的文字不超过二十个单词。如果输入的单词超过二十个,就要把它截断,只保留前二十个单词。
我用了“len(text.split())”来计算单词的数量,所以限制在20个或更少的部分是可以工作的,但我不知道怎么截断输入,而不把它变成一个包含二十个单词的列表。
我不确定我在if语句的第一部分写得是否正确,但如果能对第二部分提供一些帮助就太好了。我并不是想要一个直接复制粘贴的答案,能给我一些解释或者类似的例子就最好了。谢谢!
totalwords = len(text.split())
if totalwords <= 20:
return text
3 个回答
1
假设你用的 split()
函数是按照你想的那样工作的,那为什么不把前20个项目重新组合成一个字符串,然后返回呢?
2
在这里使用列表是没有问题的。你可以这样做:
>>> st = "abc def ghi"
>>> words = st.split()
>>> words
['abc', 'def', 'ghi']
>>> if len(words)>2:
... print " ".join(words[:2])
...
abc def
在上面的例子中,单词的限制是 2
,我使用了列表切片和 str.join()
来得到想要的结果。
7
我觉得用列表的方法是可行的——你已经快成功了。
你的 text.split()
已经把文本分成了一个个单词的数组,所以你可以这样做:
words = text.split()
totalwords = len(words)
然后,正如你所说的,你可以选择前20个单词(如果单词太多的话),再把这个数组合并回去。
要合并的话,可以看看 str.join 的用法。
举个例子:
'||'.join(['eggs','and','ham'])
# returns 'eggs||and||ham'