我的作业有点麻烦。我应该编写一个函数“limitWords”,将输入限制为20个单词,如果输入超过20个单词,则将输入截断为20个单词。
我使用“len(text.split())”作为计算单词的方法,所以20或更少的部分可以工作,但我不知道如何截断输入而不将其改为二十个字列表。
我不知道我是否正确地执行了if语句的第一部分,但输入第二位会有所帮助。我不是在寻找复制和粘贴答案 - 解释或类似的例子是首选。谢谢!
totalwords = len(text.split())
if totalwords <= 20:
return text
答案 0 :(得分:7)
我认为列表方法非常可行 - 你已经差不多了。
您的text.split()
已生成一系列字词,因此您可以执行以下操作:
words = text.split()
totalwords = len(words)
然后,您可以选择前20个(如果有太多单词),并将数组重新加入。
要加入,请查看str.join。
举个例子:
'||'.join(['eggs','and','ham'])
# returns 'eggs||and||ham'
答案 1 :(得分:2)
此处使用列表没有问题。你可以做点什么
>>> st = "abc def ghi"
>>> words = st.split()
>>> words
['abc', 'def', 'ghi']
>>> if len(words)>2:
... print " ".join(words[:2])
...
abc def
在上述情况下,字数限制为2
,我使用List Slicing和str.join()
来获取所需的输出。
答案 2 :(得分:1)
假设split()
按预期工作,为什么不将前20个项重新组合成一个字符串并将其返回?