一、字典
1.1 可变类型,不可变类型
那么如何快速判断一个数据类型 X 是不是可变类型的呢?两种方法:
- 麻烦方法:用 id(X) 函数,对 X 进行某种操作,比较操作前后的 id,如果不一样,则 X 不可变,如果一样,则 X 可变。
- 便捷方法:用 hash(X),只要不报错,证明 X 可被哈希,即不可变,反过来不可被哈希,即可变。
数值、字符和元组 都能被哈希,因此它们是不可变类型。
列表、集合、字典不能被哈希,因此它是可变类型。
1.2创建和访问字典
-
通过字符串或数值作为key来创建字典
字典定义语法为 {元素1, 元素2, …, 元素n}
其中每一个元素是一个「键值对」-- 键:值 (key:value)
关键点是「大括号 {}」,「逗号 ,」和「冒号 :」- 大括号 – 把所有元素绑在一起
- 逗号 – 将每个键值对分开
- 冒号 – 将键和值分开
-
dict() 创建一个空的字典
1.3 字典的内置方法
- dict.fromkeys(seq[, value]) 用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
- dict.keys()返回一个可迭代对象,可以使用 list() 来转换为列表,列表为字典中的所有键。
- dict.values()返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值。
- dict.items()以列表返回可遍历的 (键, 值) 元组数组。
- dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回默认值。
- dict.setdefault(key, default=None)和get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
- dict.pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key 值必须给出。若key不存在,则返回 default 值。
二、集合
2.1 创建
- 先创建对象再加入元素。
- 在创建空集合的时候只能使用s = set(),因为s = {}创建的是空字典。
basket = set()
basket.add('apple'