我什么时候应该使用字典,列表或集合?是否有更适合每种数据类型的方案?
3 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
一个list
保持秩序,dict
而set
不要:当你关心的秩序,因此,您必须使用list
(如果你的容器的选择是有限的这三个,当然;-)。
dict
与每个键关联一个值,而list
而set
仅包含值:很明显,非常不同的用例。
set
要求项目是可哈希的,list
不是:如果您有不可哈希的项目,则不能使用,set
而必须使用list
。
set
禁止重复,list
不禁止:也是至关重要的区别。(可以在以下位置找到“多重集”,该多重集将重复项映射到不止一次存在的项目的不同计数中;如果出于某些奇怪的原因而无法导入,则collections.Counter
可以将其构建为,或者在2.7之前的版本中Python作为,使用项目作为键,并将相关值作为计数)。dict
collections
collections.defaultdict(int)
在set
(或dict
键中)中检查值的成员身份非常快捷(花费一个恒定,短的时间),而在列表中,它花费的时间与列表的长度成正比(在一般情况下和最坏情况下)。因此,如果您有可散列的项目,则不关心顺序或重复项,而希望快速进行成员资格检查set
比更好list
。
添加回答
举报
0/150
提交
取消