我建立一個小的搜索引擎來搜索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