一、字典
映射 对象会将 不可变的值 映射到任意对象。 映射属于可变对象。 目前仅有一种标准映射类型 字典
- 字典可以通过将以逗号分隔的
键: 值
对列表包含于花括号之内来创建- 例如:
{'jack': 4098, 'sjoerd': 4127} 或 {4098: 'jack', 4127: 'sjoerd'}
- 例如:
- 通过
dict()
来构造映射对象dict(one=1, two=2, three=3)
dict(zip(['one', 'two', 'three'], [1, 2, 3]))
dict([('two', 2), ('one', 1), ('three', 3)])
dict({'three': 3, 'one': 1, 'two': 2})
>>> d = {"name": "dyp", "age": 21}
>>> d
{'name': 'dyp', 'age': 21}
>>> d = dict(name="dyp", age=21)
>>> d
{'name': 'dyp', 'age': 21}
>>> d = dict([("name", "dyp"),("age", 21)])
>>> d
{'name': 'dyp', 'age': 21}
字典的键 几乎可以是任何值
- 可变对象 的值,即包含列表、字典或其他可变类型的值(此类对象基于值而非对象标识进行比较)不可用作键
- 数字类型用作键时遵循数字比较的一般规则:如果两个数值相等 (例如 1 和 1.0) 则两者可以被用来索引同一字典条目
二、字典支持的操作
list(dict)
: 返回键
列表
>>> d = {'name': 'dyp', 'age': 21}
>>> list(d)
['name', 'age']
len(dict)
: 返回字典 d 中的项数。dict[key]
: 返回 dict 中以 key 为键的value。 如果映射中不存在 key 则会引发 KeyError。
>>> d = {'name': 'dyp', 'age': 21}
>>> d["name"]
'dyp'
dict[key] = value
: 将dict[key]
设为value
>>> d = {'name': 'dyp', 'age': 21}
>>> d["name"] = "dyy"
>>> d
{'name': 'dyy', 'age': 21}
del dict[key]
: 将dict[key]
从d
中移除。 如果映射中不存在key
则会引发KeyError
。
>>> d = {'name': 'dyy', 'age': 21}
>>> del d["name"]
>>> d
{'age': 21}
key in d
: 如果 d 中存在键 key 则返回 True,否则返回 False。key not in d
: 等价于 not key in d。dict.clear()
: 移除字典中的所有元素。dict.copy()
: 返回原字典的浅拷贝。
>>> d = {"name": "dyp", "age": 21}
>>> d.copy()
{'name': 'dyp', 'age': 21}
dict.get(key[, default])
: 如果 key 存在于字典中则返回 key 的值,否则返回 default。 如果 default 未给出则默认为 None,因而此方法绝不会引发 KeyError
>>> d = {'name': 'dyp', 'age': 21}
>>> d.get("age", 12)
21
dict.items()
: 返回由字典项(键, 值)
对 组成的一个新视图
>>> d = {'name': 'dyp', 'age': 21}
>>> d.items()
dict_items([('name', 'dyp'), ('age', 21)])
dict.keys()
: 返回由字典键组成的一个新视图
>>> d = {'name': 'dyp', 'age': 21}
>>> d.keys()
dict_keys(['name', 'age'])
dict.pop(key[, default])
: 如果 key 存在于字典中则将其移除并返回其值,否则返回 default。 如果 default 未给出且 key 不存在于字典中,则会引发 KeyError
>>> d = {'name': 'dyp', 'age': 21}
>>> d.pop("name")
'dyp'
dict.popitem()
: 从字典中移除并返回一个 (键, 值) 对。 键值对会按LIFO
的顺序被返回, 空字典会报错
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.popitem()
('name', 'dyp')
reversed(dict)
: 返回一个逆序获取字典键的迭代器dict.setdefault(key[, default])
: 如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default 。 default 默认为 None
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.setdefault("name", "dyy")
'dyp'
dict.update([other])
: 使用来自other
的键:值
对更新字典,覆盖原有的键
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.update({"name": "dyy", "age": 22})
>>> d
{'age': 22, 'name': 'dyy'}
dict.values()
: 返回由字典值组成的一个新视图
>>> d = {'age': 22, 'name': 'dyy'}
>>> d.values()
dict_values([22, 'dyy'])