我有一个csv文件,它是这样的:
book_store_id book_price name
1 200.0 foo
1 320.0 bar
2 220.0 foobar
2 280.0 foo
所以。。这是一个巨大的清单。。在
现在我想知道如果输入是“foo”
既然1号书店的“foo”标明了最低价格,那么我想返回“book_store”1
现在我要做的是创建一个反向索引,它返回类似
^{pr2}$等等,然后是一本单独的字典,我在那里维持着书店里书的价格。。但这是解决这个问题的最好办法吗。在
在python中解决这个问题最有效的方法是什么?在
我将创建第三个数据结构(python dict或数据库表或其他任何东西)。在
数据结构键应该是名称(假设名称是唯一的)。在
此“名称”关键点的值应为最低价格。在
每次插入新书或更新图书价格时,都要在第三个数据结构中查找图书最低价格,如果低于最低价格,则设置新的最低价格。在
别忘了,如果你删除了一本书,或者提高了价格,一定要更新最低价格。 (您可以添加另一列,这样每本书都有一个布尔值“is current minimum”。如果价格上涨,你只需要更新最低价格。在
问题是,当你删除旧的最小值时,你需要找到下一个最佳最小值。在
这是个好地方
python有一个很好的heapq实现,如下所示: http://docs.python.org/library/heapq.html
否则,每次涨价时,你必须遍历所有值以找到新的最小值,或者每次都必须存储5个最佳价格。在
玩得开心:)
这完全取决于你处理的数据量。如果金额不是太高,那么你所做的一切都很好。在
相关问题 更多 >
编程相关推荐