我建立一个小的搜索引擎来搜索PDF文件的集合。从每个pdf中提取一组令牌并将其存储在数据库中。我不想在数据库中存储重复的令牌,而是想要将每个令牌的数量存储在数据库中。 python是否有任何特殊的数据结构,不存储重复但存储每个令牌的计数?Python的数据结构网络化建议
2
A
回答
3
我建议使用一个简单的字典存储计数像
storage = {} # initialize
# ...
if !storage.has_key(token):
storage[token] = 1
else:
storage[token] += 1
编辑
这就是说,如果你使用Python 3我会跟随Space_C0wb0y的建议使用Counter
类...
5
的Python> = 2.7具有Counter
。
3
收藏包中有defaultdict,它可以用作计数器的键值存储:
>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
... d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]
正是这样的通知:这不是一个DATABSE,它在内存存储纯。你必须以某种方式保存这些数据!
0
您可以随时为每个文件实现一个对象,并为其提供多种方法,如打开和显示等。然后,您可以为对象定义__hash__
和__eq__
,这将允许您将项目存储在一个集合中,导致重复更新集合中的单个实例。
这绝不是做什么的只是另一种方式是最好的方法。
相关问题
- 1. 数据结构的建议
- 2. Python数据结构对于2D网格的建议
- 3. 建议数据结构
- 4. OOP数据结构建议
- 5. 网络协议内部结构
- 6. Firebase数据库网络存根建议
- 7. Python优化数据结构
- 8. PHP数据结构的建议需要
- 9. 关于数据结构的建议
- 10. 关于数据库结构的建议
- 11. 建议使用的数据结构
- 12. 对数据结构的建议!
- 13. 非结构化数据的网络爬虫
- 14. 关于项目半结构化数据的一些建议
- 15. 需要关于数据库结构化的建议
- 16. 某些网络的python数据结构,广度优先搜索
- 17. 网络设备属性的最佳python数据结构
- 18. 关于在Python中选择数据结构的建议
- 19. 确定网络数据包结构
- 20. Rails数据库结构建议?
- 21. 需要建议:MySQL数据库结构
- 22. MySQL数据库结构建议
- 23. 数据结构网络化用于获取
- 24. 数据结构网络化算法需要一个解释
- 25. 序列化并通过网络同步数据结构C
- 26. Rails数据库结构和优化建议
- 27. 在网络中构建数据字典
- 28. 在Java中创建网络数据包分层结构
- 29. 优化MySQL表结构。需要建议
- 30. 网页结构建议(jquery,.NET)
如果不是storage.hash_key(令牌) – nikhil 2011-05-17 10:05:57
我会使用一个'collections.defaultdict'并且完全消除了'if'声明。 – 2011-05-17 10:10:42
@nikhil:你为什么接受这个解决方案?这是相当低效的。我认为这样做的唯一理由是如果你有一个非常古老的Python版本。 – 2011-05-20 06:35:01