当你拥有像人,街道,爱尔兰舞蹈团等具有某种名称标识符的对象集合时,将它存储在地图中是否可以,或者它被认为是一种不好的做法,我应该只存储它作为一个列表并每次查询列表?
实施例。
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)}
编辑: 假设唯一性,速度问题可能会引起关注,但总体清晰度是目标。
答案 0 :(得分:0)
我认为这是相当危险的,特别是如果你处理多种编码,例如可以用罗马字母和其他字符集编写的名称,例如日语,俄语等。
此外,正如@cdhowie所提到的,唯一性的概念非常重要。如果使用别名,哪一个是规范的?
最后,您将如何处理更改,例如更正拼写错误?
我没有看到很多好处,我认为将来使用会有很多风险。
答案 1 :(得分:0)
地图为您提供恒定的查找时间(好),但您正在复制数据(错误)。如果出于性能原因确实需要常量查找时间,则使用映射但要小心保持键与对象中的值同步。如果它对性能不重要,那就把它们放在一个数组中。