字典用于存放具有映射关系的数据结构
字典是包含若干“键:值”对的无序可变序列,字典中的每个元素包含两部分:“键”和“值”。定义字典时,每个元素的“键”和“值”用冒号分隔,相邻元素之间用逗号分隔,所有的元素都放在一对大括号“{”和“}”中
键(key)必须使用不可变类型的
同一个字典中,键必须是唯一的
>>> a={'name':'xiaohua'}
>>> type(a) #类型是字典
>>> b={'a':1,'b':2}
>>> b
{'a': 1, 'b': 2}
>>> x=['a','b','c']
>>> y=[1,2,3]
>>> c=dict(zip(x,y))
>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> d=dict(age=18)
>>> d
{'age': 18}
>>> e=dict.fromkeys(['name','age','sex'])
>>> e
{'name': None, 'age': None, 'sex': None}
>>> a={'name':'xiaohua'}
>>> a
{'name': 'xiaohua'}
>>> a['name']
'xiaohua'
若指定键不存在则会抛出异常
>>> a={'name':'Wang','sex':'male','age':37}
>>> a['name']
'Wang'
>>> a['tel'] #若指定键不存在则会抛出异常
Traceback (most recent call last):
File "", line 1, in
a['tel'] #若指定键不存在则会抛出异常
KeyError: 'tel'
>>> a['name']
'xiaohua'
>>> a.get('name')
'xiaohua'
>>> a.get('age')
>>>
get()方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的事后反悔指定值,如果不指定,则默认返回None
>>> a
{'name': 'Wang', 'sex': 'male', 'age': 37}
>>> print(a.get('address'))
None
>>> print(a.get('address','SDIBT'))
SDIBT
>>>
访问所有元素的键
>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.keys() #访问所有元素的键
dict_keys(['a', 'b', 'c'])
访问所有元素的值
>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.values() #访问所有元素的值
dict_values([1, 2, 3])
>>>
遍历所有元素的值
>>> c
{'a': 1, 'b': 2, 'c': 3}
>>> c.items() #遍历所有元素的值
dict_items([('a', 1), ('b', 2), ('c', 3)])
>>> t={'语文':80,'数学':90,'英语':85}
>>> t.items()
dict_items([('语文', 80), ('数学', 90), ('英语', 85)])
>>> for key in t:
print(key)
语文
数学
英语
>>> for key,value in t.items():
print(key,value)
语文 80
数学 90
英语 85
求成绩的平均值
>>> t
{'语文': 80, '数学': 90, '英语': 85}
>>> t['语文']=90
>>> t
{'语文': 90, '数学': 90, '英语': 85}
>>> t['体育']=99
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99}
如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
>>> t.setdefault('语文')
90
>>> t.setdefault('python')
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None}
>>> t.setdefault('python1',99)
99
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
update() 函数把字典 dict2 的键/值对更新到 dict 里
>>> q={'a':1,'b':2}
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> t.update(q)
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}
>>> q.update(t)
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}
删除所有的元素
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99}
>>> del q['python']
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python1': 99}
删除指定键的对应元素
>>> t
{'语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python': None, 'python1': 99, 'a': 1, 'b': 2}
>>> del t
>>> t
Traceback (most recent call last):
File "", line 1, in
t
NameError: name 't' is not defined
删除并返回指定“键”的元素
>>> a
{'name': 'Wang', 'sex': 'male', 'age': 37}
>>> a.pop('name')
'Wang'
>>> a
{'sex': 'male', 'age': 37}
删除所有的元素
>>> q
{'a': 1, 'b': 2, '语文': 90, '数学': 90, '英语': 85, '体育': 99, 'python1': 99}
>>> q.clear()
>>> q
{}