Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找各种python文档中的常用词_Python_Algorithm - Fatal编程技术网

查找各种python文档中的常用词

查找各种python文档中的常用词,python,algorithm,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”的最低价格,那么我想退回“bo

我有一个类似以下内容的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\u store”1

现在我要做的是创建一个反向索引,它返回

foo:1,2 
bar:1
foobar:2
等等,然后是一本单独的字典,在那里我维持着书店里书的价格。。但这是解决这个问题的最好办法吗


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

我将创建第三个数据结构(python dict、数据库表或其他)

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

此“名称”关键点的值应为最低价格

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

别忘了,如果你删除了一本书,或是提高了它的价格,一定要更新最低限度。 (您可以添加另一列,使每本书都有一个布尔值“is current minimum”。然后在涨价时,如果这是真的,您只需要更新最小值

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

在这里有一个heapq是很好的

python有一个很好的heapq实现这里:

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


玩得开心:)

这一切都取决于您处理的数据量。如果金额不太高,那么您所做的一切都很好。

如何提高效率?运行时间?编码时间?空间消耗?我认为倒排索引和IR技术在这方面有些过分,因为您的数据是结构化的,我同意@StefanoBorini的观点:使用SQL或其他基于关系的系统,可能是最好的解决方案。运行时…也就是说,完全用大的注释为什么-1分??这个问题怎么了?我不知道。我只想写一个适当的select语句。如果工作需要它,只需使用sql即可。如果你需要它做家庭作业,你应该从你的课程材料中知道。大的查找哦?没有比索引更好的了……)