【发布时间】:2022-03-23 20:48:52
【问题描述】:
我是 Python 新手,试图理解here 对文档中唯一单词计数问题的回答。答案是:
print len(set(w.lower() for w in open('filename.dat').read().split()))
将整个文件读入内存,使用 空格,将每个单词转换为小写,创建一个(唯一的)集合 从小写单词中,计算它们并打印输出
为了尝试理解这一点,我正在尝试逐步在 Python 中实现它。我可以使用 open and read 导入文本图块,使用 split 将其分成单个单词,并使用 lower 将它们全部小写。我还可以在列表中创建一组独特的单词。但是,我不知道如何做最后一部分 - 计算唯一单词的数量。
我以为我可以通过遍历唯一单词集中的项目并将它们计数到原始小写列表中来完成,但我发现集合构造不可索引。
所以我想我正在尝试用自然语言做一些事情,例如,对于集合中的所有项目,告诉我它们在小写列表中出现了多少次。但我无法完全弄清楚如何做到这一点,而且我怀疑对 Python 的一些潜在误解阻碍了我。
- 编辑 -
大家感谢您的回答。我刚刚意识到我没有正确解释自己 - 我不仅想找到唯一单词的总数(我理解的是集合的长度),而且还想找到每个单词被使用的次数,例如“the”用了 14 次,“and”用了 9 次,“it”用了 20 次,以此类推。对造成的混乱表示歉意。
【问题讨论】:
-
你为什么不使用字典来从单词映射到计数?
-
不需要遍历集合来计算唯一词的数量。这就是
len函数的作用 - 它为您提供集合的长度。 -
unique_word_count = len(your_set)有什么问题? -
S. Lott - 我认为你的建议就是我的实际意思,请参阅上面问题中的编辑。
标签: python