2012-02-15 66 views
3

我有麻烦一点点跟我的家庭作业。我应该编写一个函数“limitWords”,将输入限制为20个单词,并且如果输入超过20个单词,则将输入截短为仅20个单词。Python的字长功能例如需要

我使用了“len(text.split())”作为计算单词的手段,所以20或更少的部分有效,但我不知道如何截断输入而不将其改为二十单词表。

我不知道的方式我做我的if语句的第一部分正确,但在第二位输入将是有益的。我不在寻找复制和粘贴答案 - 解释或类似的例子将是首选。谢谢!

totalwords = len(text.split()) 
if totalwords <= 20: 
    return text 

回答

5

我认为名单的做法是相当可行的 - 你几乎没有了。

text.split()已经产生单词的数组,所以你可以做:

words = text.split() 
totalwords = len(words) 

然后,就像你说的,你可以选择第20(如果有太多的话),并加入阵列一起回来。

要加入,看看str.join

举个例子:

'||'.join(['eggs','and','ham']) 
# returns 'eggs||and||ham' 
+0

非常感谢!我一直被卡住,这个输入真的帮了很多! – Linseykathleen 2012-02-15 05:26:57

1

。假定该split()作品你想,为什么不重组的第一个20个项目为一个字符串,返回呢?

+0

也谢谢!真的很有帮助 - 我现在拥有了! – Linseykathleen 2012-02-15 05:27:46

2

有一个在这里使用名单没有问题。你可以不喜欢

>>> st = "abc def ghi" 
>>> words = st.split() 
>>> words 
['abc', 'def', 'ghi'] 
>>> if len(words)>2: 
...  print " ".join(words[:2]) 
... 
abc def 

东西在上述情况下的字数限制是2我用List Slicingstr.join(),以获得所需的输出。

+0

也感谢你。非常有用的例子! – Linseykathleen 2012-02-15 05:27:26