字典是另一种可变容器模型,且可存储任意类型对象。动态,无序。以大括号形式的键值对(项)数据集的集合。
形如 dict= {’key':'value','key1':'value1'}
note:key是唯一的,value可不唯一;key一般情况下是字符串,key必须是不可变类型:数字,字符串,元组;(可变类型:list)
一个key只能对应一个value,如果多次对一个key放入value,则后面的值会把前面的值覆盖。
如果key不存在,dict会报错。python不关心键值对的添加顺序,只关心key-value的关联关系。
使用字典来存储用户提供的数据或在编写能自动生成大量键值对的代码时,通常都需要先定义一个空字典。
>>> my_dict = {'name':'小明','name':'tom'}
>>> print(my_dict)
{'name': 'tom'}
>>> my_dict['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
增删改查
1.查询元素
语法:dict[key] 或者用get取值value ,如果没有此键值对,返回None。
>>> my_dict = {'name':'小明','age':16}
>>> my_dict['name']
'小明'
>>> my_dict.get('name')
'小明'
>>> my_dict.get('dog')
>>> result = my_dict.get('dog')
>>> print(result)
None
2.增加元素/修改元素
语法:dict [key] = value 如果key存在,则更新键值对。
>>> my_dict = {'name':'小明','age':16}
>>> my_dict['city'] = 'shanghai'
>>> print(my_dict)
{'name': '小明', 'age': 16, 'city': 'shanghai'}
3.删除元素
语法:del dict[key]
>>> my_dict = {'name':'小明','age':16}
>>> my_dict['city'] = 'shanghai'
>>> print(my_dict)
{'name': '小明', 'age': 16, 'city': 'shanghai'}
>>> del my_dict['age']
>>> print(my_dict)
{'name': '小明', 'city': 'shanghai'}
常见的代码格式:
>>> favorite_language = {
... 'jen':'c',
... 'sarah':'python', #缩进,逗号 存储类似对象组成的字典
... 'phil':'ruby',
... }
>>> print("Sarah's favorite language is " + favorite_language['sarah'] .title() +
... '.') #print语句过长,可以用+ 结尾,并用tab缩进下一行
Sarah's favorite language is Python.
随机删除
my_dict.popitem() 有返回值
指定删除
my_dict.pop(key) 有返回值