2012-04-28 48 views
1

我是python的新手。我需要一个数据结构来存储一些对象的计数。例如,我想存储访问量最大的网页。可以说。我有100个访问量最大的网页。我保留每个网页的访问次数。我可能需要更新列表。我一定会更新访问次数。它不必订购。我将查看给定网页ID的关联访问计数。我打算使用字典。有没有更快的方式在Python中做到这一点?python字典结构,速度问题

+6

'python字典结构有多快?'非常快。 – ChristopheD 2012-04-28 22:32:07

+0

标题可能有些错误。但是,我认为我的担忧是可以理解的。我想知道这是否是最快或者不是我的目的。你有什么想法吗? – 2012-04-28 22:34:13

+0

你也可以看看['collections.counter'](http://docs.python.org/library/collections.html#collections.Counter)是否符合你的需求。 – jamylak 2012-04-28 22:35:50

回答

3

该字典是适合此任务的快速数据结构(将网页ID映射到访问计数)。

对于快速O(1)访问,使用hash tables来实现Python字典。它们非常快,几乎任何避免它们的尝试都会使代码运行速度变慢,并使代码看起来不愉快。

P.S.另外请看collections.Counter这是专门为这种工作(计数命中)而设计的。它被实现为一个初始默认值设置为零的字典。

1

Python字典对象是整个Python语言中最优化的部分之一,其原因是字典在任何地方都可以使用。

例如,通常每个类的每个对象实例都使用一个字典来保持实例数据成员的内容,该类是一个包含方法的字典,模块使用字典来保存全局变量,系统使用字典保留和查找模块等。

使用字典保持计数器是Python中的一个好方法。