我需要一个对象的集合,可以通过每个对象的某个(唯一)属性进行查找。现在我正在使用一个dictionary将dictionary键分配给属性。
下面是我现在所拥有的一个例子:class Item():
def __init__(self, uniq_key, title=None):
self.key = uniq_key
self.title = title
item_instance_1 = Item("unique_key1", title="foo")
item_instance_2 = Item("unique_key3", title="foo")
item_instance_3 = Item("unique_key2", title="foo")
item_collection = {
item_instance_1.key: item_instance_1,
item_instance_2.key: item_instance_2,
item_instance_3.key: item_instance_3
}
item_instance_1.key = "new_key"
现在这似乎是一个相当麻烦的解决方案,因为key不是对属性的引用,而是在赋值时获取key属性的值,这意味着:字典的键以object属性和
更改对象属性时,字典键不会更新。在
使用列表和遍历对象似乎更低效。在
那么,对于这个特殊的情况,有没有比dict更适合的数据结构呢?一组对象根据某个对象属性随机访问?在
这将需要与Python2.4一起工作,因为这正是我一直坚持的(在工作中)。在
如果不是很明显的话,我还是Python新手。在