【发布时间】:2011-08-09 03:22:31
【问题描述】:
当您拥有诸如人、街道、爱尔兰舞蹈团等具有某种名称标识符的对象集合时,是否可以将其存储在地图中,或者认为这是一种不好的做法,我应该只存储它作为一个列表并每次都查询该列表?
例如。
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
a = [Person("karl",50),Person("abe",20)]
vs
b = {"karl" : Person("karl",50), "abe" : Person("abe",20)}
编辑: 假设唯一性,可能会担心速度问题,但目标是总体清晰。
【问题讨论】:
-
这取决于。名称是否保证是唯一的?您是否经常按姓名查找人员?
-
地图是一个抽象概念。如果您按名称或使用其他类型的键查找事物,那么您就有一个映射(或一个多映射,如果键不是唯一的)。您可以使用列表来实现地图概念,这很简单但效率很低。或者您可以使用您的语言/库附带的高效现成地图实现(这是您通常应该做的,除非您有充分的理由不这样做)。
-
为什么要使用列表而不是地图?搜索列表究竟如何提高清晰度?
-
我不是说它是,我是在问什么会更清楚