I have id
例如,监狱里的囚犯。每个囚犯都有一个名字。
我知道字典如何工作,我知道元组如何工作,我知道列表如何工作,但有时我看到正在使用字典,有时看到元组列表。在我的情况下我应该使用哪一个?
d = {
1: "Mike",
2: "Bob",
3: "Tom"
}
vs
l = [
(1, "Mike"),
(2, "Bob"),
(3, "Tom")
]
概括一下这个问题:我什么时候应该使用字典,什么时候应该使用元组列表,它们有什么好处?
当需要按顺序存储项目时,您应该使用列表。在这种情况下,唯一重要的是 ID 映射到名称。
字典是一种映射,这意味着键和值之间的关系不是对称的。例如,通过已知值获取键是很棘手的(并且在一般情况下并不总是可能),而通过元组中任何项的值过滤元组列表(或一组,就此而言)同样容易。
话虽如此,在选择数据结构时,考虑如何从中检索数据是有意义的。如果你能看到id
and name
作为类似于 C 的东西的相等部分struct
(例如,您需要按其中任何一个进行搜索等)那么您最好使用元组或collections.namedtuple。您仍然可以根据需要将它们放入列表或集合中以保持有序。
But if id
是一个“特殊”字段,用于检索有关对象的其余信息,并且保证它是唯一的(好吧,“ID”意味着它),并且您不需要内部顺序,并且需要恒定的时间随机访问——当然使用字典。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)