字典是另一种可变容器模型,可存储任意类型对象。
字典是由一个个键值对组成,类型如下:
dic = {key1 : value1, key2 : value2 }
特征:
- 键必须独一无二且必须不可变,所以可以用数,字符串或元组充当。
- 键值可以取任何数据类型。
- 添加或修改元素
dic = {'a': [1, 2], 1: 'abc'}
# 添加元素:键为’b‘,值为100
dic['b'] = 100
print(dic)
{1: 'abc', 'a': [1, 2], 'b': 100}
# 若添加元素键已存在,则替换已存在的值
dic['a'] = 100
print(dic)
{1: 'abc', 'a': 100, 'b': 100}
- 删除元素
dic = {'a': [1, 2], 1: 'abc'}
# 删除键值对
del dic['a']
print(dic)
{1: 'abc'}
# 清空字典
dic.clear()
print(dic)
{}
# 清空字典
del dic
print(dic)
UnboundLocalError: local variable 'dic' referenced before assignment
- 查询
dic = {'a': [1, 2], 1: 'abc'}
# 通过[]访问
print(dic['a'])
# 通过get()函数访问
print(dic.get(1))
[1, 2]
abc
# 推荐使用get()函数访问,因为若访问的元素不存在,通过[]访问则报错:KeyError: 'b'。通过get()函数访问返回:None
print(dic.get('b'))
print(dic['b'])
None
KeyError: 'b'
字典内置方法:
dict.clear() # 删除字典内所有元素
dict.get(key, default=None) # 返回指定键的值,如果值不在字典中返回default值
dict.has_key(key) # 如果键在字典dict里返回true,否则返回false
dict.items() # 以列表形式返回可遍历的(键, 值) 元组数组
dict.keys()# 以列表形式返回一个字典所有的键
dict.values() # 以列表形式返回字典中的所有值
dict.setdefault(key, default=None) # 但如果键不存在于字典中,将会添加键并将值设为default