如何找到一个单词的第一个字母将是大写字母,其他字母将是b

2024-09-30 02:36:40 发布

您现在位置:Python中文网/ 问答频道 /正文

问题陈述:从全套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}$

我不知道它需要多少计数,不管计数是多少,它都不允许我通过挑战。请让我知道,如果我做了什么错误的代码


Tags: 答案fromimport标题title字母item单词
3条回答

在问题中,“将结果存储在可变标题的单词中。打印标题“单词”中的字数。“

过滤元素列表的结果是相同类型元素的列表。在您的例子中,过滤列表text6(假设它是一个字符串列表)将得到一个(更小的)字符串列表。您的title_words变量应该是这个经过筛选的列表,而不是字符串的数目;字符串的数量就是列表的长度。在

对于大写的单词是应该filtered out(即从较小的列表中删除)还是filtered(即保留在列表中)这一问题也很模糊,所以请同时尝试这两种方法,看看你是否理解错了。在

上面的一个建议确实对我有用。下面是示例代码。在

title_words = [word for word in text6 if (len(word)==1 and word[0].isupper()) or (word[0].isupper() and word[1:].islower()) ]
print(len(title_words))

我认为问题出在set(text6)。我建议您迭代text6.tokens。在

更新、解释

您提供的代码是正确的。在

问题是文本可以多次包含相同的单词。执行set(words)操作将减少可用字的总数,因此从不完整的数据集开始。在

其他响应在检查单词的有效性时不一定出错,但它们在相同的错误数据集上迭代。在

相关问题 更多 >

    热门问题