需要Python单词长度函数示例

4 投票
3 回答
20314 浏览
提问于 2025-04-17 13:03

我在做作业的时候遇到了一点麻烦。我需要写一个叫“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'

撰写回答