问题陈述:从全套text6中过滤这些单词,第一个字母大写,其他字母小写。将结果存储在可变标题的单词中。打印标题“单词”中的字数。在
我想尽一切办法来寻找答案,但不知道自己落后在哪里。在
import nltk
from nltk.book import text6
title_words = 0
for item in set(text6):
if item[0].isupper() and item[1:].islower():
title_words += 1
print(title_words)
我也试过这样做:
^{pr2}$我不知道它需要多少计数,不管计数是多少,它都不允许我通过挑战。请让我知道,如果我做了什么错误的代码
在问题中,“将结果存储在可变标题的单词中。打印标题“单词”中的字数。“
过滤元素列表的结果是相同类型元素的列表。在您的例子中,过滤列表
text6
(假设它是一个字符串列表)将得到一个(更小的)字符串列表。您的title_words
变量应该是这个经过筛选的列表,而不是字符串的数目;字符串的数量就是列表的长度。在对于大写的单词是应该filtered out(即从较小的列表中删除)还是filtered(即保留在列表中)这一问题也很模糊,所以请同时尝试这两种方法,看看你是否理解错了。在
上面的一个建议确实对我有用。下面是示例代码。在
我认为问题出在
set(text6)
。我建议您迭代text6.tokens
。在更新、解释
您提供的代码是正确的。在
问题是文本可以多次包含相同的单词。执行
set(words)
操作将减少可用字的总数,因此从不完整的数据集开始。在其他响应在检查单词的有效性时不一定出错,但它们在相同的错误数据集上迭代。在
相关问题 更多 >
编程相关推荐