数据类型 | 定义符号 | 访问元素 | 是否可变 | 是否重复 | 是否有序 |
列表 | [ ] | 索引 | 可变 | 可重复 | 有序 |
元组 | () | 索引 | 不可变 | 可重复 | 有序 |
字典 | {key:value} | 键 | 可变 | 可重复 | 无序 |
集合 | { } | 可变 | 不可重复 | 无序 |
字典概念
在python语言中,字典属于内置容器类,其中可以包含若干个元素,每个元素包含“键”和“值”两部分,两部分之间使用英文半角冒号分隔,表示一种对应关系或映射关系。
字典元素的“键”可以是python中任意不可变数据,如整数、实数、复数、字符串、元组等类型。但不能使用列表、集合、字典或其他可变类型作为字典的“键”,包含列表缝可变数据的元组也不能作为字典的“键”。另外,字典中的“键”不允许重复且必须可哈希,“值”是可以重复的。
字典是可变的,可以动态的增加、删除元素,也可以修改元素的“值”。
字典的创建与删除
字典元素访问
(1)字典支持下标运算,把“键”作为下标并返回对应的“值”,如果字典中不存在这个“键”会抛出异常。使用下标访问元素“值”时,一般建议配合选择结构或者异常处理结构,以免代码异常发生崩溃。
(2)推荐使用字典的get()方法获取指定“键”对应的“值”,如果指定的“键”不存在,get()方法会返回空值或指定的默认值。
(3)字典对象的setdefault()方法也可以用于获取字典中元素的“值”或者增加新元素。如果当前字典对象中没有以key为“键”的元素则插入以key为“键”、以default为“值”的新元素并返回default的值,如果当前字典中有以key为“键”的元素则直接返回对应的“值”。
(4)字典对象支持元素迭代,可以将其转换位列表或元组,也可以使用for循环遍历其中的元素。在这样的场合中,默认情况是遍历字典的“键”,如果需要遍历字典的元素必须使用字典对象的items()方法明确说明,如果需要遍历字典的“值”则必须使用字典对象的values()方法明确说明。当使用len()、max()、min()、sum()、sorted()、enumerate()、map()、filter()等内置函数以及成员测试运算符“in”对字典对象进行操作时,也遵循同样的约定。
字典元素添加与修改
(1)当以指定“键”为下标为字典元素赋值时,有以下两种含义:
①若该“键”存在,表示修改该“键”对应元素的“值”;
②若该“键”不存在,表示添加一个新元素。
(2)使用字典对象的update()方法可以将另一个字典或可迭代对象(要求每个元素都为包含2个值的元组或类似结构)中的元素一次性全部添加到当前字典对象,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。
字典元素删除
可以使用字典对象的pop()删除指定“键”对应的元素,同时返回对应的“值”。字典方法popitem()方法用于按LIFO(后进先出)的顺序删除并返回一个包含两个元素的元组,其中的两个元素分别是字典元素的“键”和“值”。字典方法clear()用于清空字典中所有元素。另外,也可以使用del删除指定的“键”对应的元素。