特性:
1.key-value结构
2.key必须为不可变数据,必须唯一。
3.可存放任意多个value,可修改,可不唯一。
4.无序
5.查询速度快,且不受dict大小影响。
创建方法
1
userinfo = {"name":"harris","age":"18","phone":"17362955684"}#直接赋值
2
userinfo = dict("name":"harris","age":"18","phone":"17362955684")#使用dict方法进行创建userinfo = dict({"name":"harris","age":"18","phone":"17362955684"})#使用dict方法进行创建
3
>>> key = (1,2,3,4,5,6,7)>>> {}.fromkeys(key,100){1: 100, 2: 100, 3: 100, 4: 100, 5: 100, 6: 100, 7: 100}>>>#将列表转化为字典的key,并且给key默认值。
增加
1.
>>> userinfo = {... "name":"harris",... "age":"18",... "phone":"17362955684"... }>>> userinfo["job"]=["teacher"]>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>>#可以修改值
2.
>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.setdefault("password","12345678")'12345678'>>> userinfo.setdefault("password","1234567810")'12345678'>>> #增加并且返回增加的值,如果该key已经存在,则不会不会生效并返回原来的值
删除
del ,删除指定key
>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher'], 'password': '12345678'}>>> del userinfo["job"]>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'password': '12345678'}>>>
pop,删除指定key,并且返回key对应的值。
>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'password': '12345678'}>>> userinfo.pop("password")'12345678'>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684'}>>>
popitem,随机删除一个key,并返回删除的key和值。
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.popitem()('job', ['teacher'])>>>
clear,清空字典
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.clear()>>> userinfo{}>>>
修改
1.指定key重新赋值
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo["name"] = "jack">>> userinfo{'name': 'jack', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>>
2.update,将一字典的键值对合并到另一个字典中。并且替换掉原来的值
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo2 = {'age': '18', 'password': '12345678', 'job': ['teacher','butcher']}>>> userinfo.update(userinfo2)>>> userinfo{'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher', 'butcher'], 'password': '12345678'}>>>
查询
1
{'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher', 'butcher'], 'password': '12345678'}>>> userinfo['name']'harris'>>> userinfo['add']Traceback (most recent call last):File "<stdin>", line 1, in <module>KeyError: 'add'>>>#如果不存该key,则会报错
2.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.get('name')'harris'>>> userinfo.get('name1')>>>>>> userinfo.get('name1',-1)-1>>>#判断该key是否存在,存在则返回值,不存在则不返回,或者指定返回值
3.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.keys()dict_keys(['name', 'age', 'phone', 'job'])>>>#返回包含所有的key的列表
4.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.values()dict_values(['harris', '18', '17362955684', ['teacher']])>>>#返回包含所有的值的一个列表
5.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> userinfo.items()dict_items([('name', 'harris'), ('age', '18'), ('phone', '17362955684'), ('job', ['teacher'])])>>>#返回一个包含所有键值元组的列表
循环
1.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> for i in userinfo:... print(i)...nameagephonejob>>> for i in userinfo:... print(i,userinfo[i])...name harrisage 18phone 17362955684job ['teacher']>>>#效率最高
2.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> for i in userinfo.keys():... print(i)...nameagephonejob>>> 循环所有的key
3.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> for i in userinfo.values():... print(i)...harris1817362955684['teacher']>>>#循环所有的值
4.
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> for i in userinfo.items():... print(i)...('name', 'harris')('age', '18')('phone', '17362955684')('job', ['teacher'])>>>#将所有的键值对以元组的形式打印出来>>> for k,y in userinfo.items():... print(k,y)...name harrisage 18phone 17362955684job ['teacher']>>>#使用两个临时变量,以不含元组的形式进行打印。
求长度
>>> userinfo = {'name': 'harris', 'age': '18', 'phone': '17362955684', 'job': ['teacher']}>>> len(userinfo)4>>>
