dict的第一个特色是查找速度快,不管dict有10个元素仍是10万个元素,查找速度都同样。而list的查找速度随着元素增长而逐渐降低。python
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费不少内容,list正好相反,占用内存小,可是查找速度慢。spa
因为dict是按 key 查找,因此,在一个dict中,key不能重复。code
dict的第二个特色就是存储的key-value序对是没有顺序的!对象
d = { 'Jack': 95, 'Lisa': 85, 'Bart': 59 }
dict的第三个特色是做为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,均可以做为 key。可是list是可变的,就不能做为 key。内存
不可变这个限制仅做用于key,value是否可变无所谓:字符串
{ '123': [1, 2, 3], # key 是 str,value是list 123: '123', # key 是 int,value 是 str ('a', 'b'): True # key 是 tuple,而且tuple的每一个元素都是不可变对象,value是 boolean }
最经常使用的key仍是字符串,由于用起来最方便。for循环
因为dict也是一个集合,因此,遍历dict和遍历list相似,均可以经过 for 循环实现。class
直接使用for循环能够遍历 dict 的 key:循环
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } for key in d: print key