在各种文档python中找出常用词

时间:2012-05-06 21:47:23

标签: python algorithm

我有一个类似的csv文件:

 book_store_id  book_price   name

 1              200.0        foo
 1              320.0        bar
 2              220.0        foobar
 2              280.0        foo

所以..这是一个巨大的清单..

现在我试图找出输入是否为“foo”

然后,因为书店ID 1的“foo”标记为最低价格,那么我想返回“book_store”1

现在,我这样做是为了创建一个返回索引,返回类似

的内容
foo:1,2 
bar:1
foobar:2

等等,然后是一个单独的字典,我在商店里维护书的价格......但这是解决这个问题的最好方法。

在python中解决这个问题的最有效方法是什么?

2 个答案:

答案 0 :(得分:1)

我会创建第三个数据结构(python dict,或数据库表或其他)。

数据结构键应该是名称(假设名称是唯一的)。

此“名称”键指向的值应为最低价格。

每次插入新书或更新图书价格时,请在第三个数据结构中查找最低价格,如果低于最低价格,请设置新的最低价格。

不要忘记,如果您删除图书或提高价格,请务必更新最低要求。 (你可以添加另一列,这样每本书都有一个布尔“当前最小值”。然后在价格上涨时你只需要更新最小值,如果这是真的。

问题是,当您删除旧的最小值时,您需要找到下一个最佳最小值。

这是拥有heapq

的好地方

python在这里有一个很好的heapq实现http://docs.python.org/library/heapq.html

否则,您必须循环遍历所有值以在每次价格上涨时找到新的最小值,或者您必须每次存储5个最佳价格,比如说。

玩得开心:)

答案 1 :(得分:0)

这一切都取决于您正在处理的数据量。如果金额不是太高,那你正在做的就好了。

相关问题