【发布时间】:2017-02-25 22:56:10
【问题描述】:
我正在浏览一个文档列表,计算每个单词在全球范围内出现的次数,并存储在哪些文档中。因此,我需要一个数据结构,它或多或少是一个字典,键是单词,值是计数和文档 ID 列表。
我猜基本上是这样的? :
{
'word1': [num1, [id1, id2, id3]],
'word2': [num2, [id2, id4, id5]],
'word3': [num3, [id1, id4, id6, id]]
}
有这种事吗?
我需要的是:
- 如果我推送的单词不存在,则必须创建一个新行,
-
num字段必须易于递增, -
ids 列表很容易用新文档更新id
我应该使用 dict 吗?或者是其他东西 ?我可以看到如何使用list 和['word', num, [id1, id2, id3]] 来处理每个单词,但我觉得代码对于这么简单的事情会非常复杂,所以我想知道是否还有其他一些我不知道的数据结构知道哪个更适合我使用吗?
【问题讨论】:
-
主要用例是什么?例如你想知道有多少文档有一个特定的词吗?或者给定文档中有多少个独特的单词?这将对您应该键入的内容和您应该重视的内容产生影响。因此,首先要考虑如何使用您的结构。您需要随机访问还是顺序访问?
-
我想显示 30 个最常用的词,这样我就可以知道最常提到的事情是什么(文档实际上是推文)。一旦找到它们,我就会删除所有其他单词。必须存储 ID,因为我希望其中给定单词的推文看起来很容易找到。我最感兴趣的是确保它相当快(它在一个每分钟可以运行多次的脚本中)。谢谢
标签: python-3.x data-structures counter