字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, “键”和“值”之间用冒号隔开,所有“键值对”放在一对大括号“{}”中,元素之间用逗号分隔。在同一个字典中,“键”必须是唯一的,因此,“键”必须为不可变类型,“值”可以重复,值可以是任意类型。
字典的创建
创建字典的两种方式。
注意:将可迭代对象转化为字典时,要求可迭代对象中每个元素的长度为2。
字典的主要方法
字典是无序的,因此不支持索引、切片等操作。主要通过字典对象[键]获取对应的值。如果访问一个不存在的“键”,此时将会抛出KeyError异常,如果对一个不存在的“键”赋值,此时将会在字典中添加一个“键值对”。此外,字典还提供了获取所有键值对、所有键、所有值等方法。字典元素访问的主要方法如下。
字典中的键值对是可以变化的,支持添加、删除、更新等操作,常见方法如下。
字典推导式
Python中也支持字典推导式,写法和集合推导式的写法类似,也是放在一对大括号中。表达式中通常包含键和值两部分,并分别指定这两部分的内容。字典推导式的写法和例子如下。
- a_dict的值为:{'a': 2, 'E': 5, 'B': 6, 'C': 7, 'd': 10}
- b_dict的值为:{'a': 2, 'e': 5, 'b': 6, 'c': 7, 'd': 10}
- c_dict的值为:{'a': 2, 'B': 6, 'd': 10}
- d_dict的值为:{'D': 4, 'E': 4, 'F': 4}
字典的排序
实际开发中,经常会对字典进行排序,可使用系统中提供的sorted()函数,但需要指定是按照“键”进行排序还是按照“值”进行排序。通常通过lambda表达式来指定排序的规则,lambda表达式的详细介绍将会在后篇的文章Python中的函数部分介绍。
小小练习题