字典(dictionary)是除列表以外Python中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取的。字典由索引(key)和它对应的值(value)组成(key和value之间用:冒号隔开)。用“{}”标识。
dict={'Name':'Runoob','Age':7,'Class':'First'}或这样写:dict={'Name':'Runoob','Age':7,'Class':'First',}print(dict.keys())#输出所有键print(dict.values())#输出所有值print(dict['Name'])#输出键为’Name’的值Print(dict)#输出完整的字典以上例子输出结果为:dict_keys(['Class','Age','Name'])#无序的dict_values(['First',7,'Runoob'])Runoob{'Name':'Runoob','Class':'First','Age':7}字典的介绍字典是另一种可变容器模型,且可存储任意类型对象。(字典是无序的)字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下所示:d={key1:value1,key2:value2}键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
dict={'Alice':'2341','Beth':'9102','Cecil':'3258'}也可如此创建字典:dict1={'abc':456}dict2={'abc':123,98.6:37}访问字典里的值把相应的键放入到方括号中,如下实例:
实例#!/usr/bin/python3dict={'Name':'Runoob','Age':7,'Class':'First'}print("dict['Name']:",dict['Name'])print("dict['Age']:",dict['Age'])以上实例输出结果:dict['Name']:Runoobdict['Age']:7如果用字典里没有的键访问数据,会输出错误如下:
实例#!/usr/bin/python3dict={'Name':'Runoob','Age':7,'Class':'First'};print("dict['Alice']:",dict['Alice'])以上实例输出结果:Traceback(mostrecentcalllast):File"test.py",line5,in
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:实例#!/usr/bin/python3dict={'Name':'Runoob','Age':7,'Name':'小菜鸟'}print("dict['Name']:",dict['Name'])以上实例输出结果:dict['Name']:小菜鸟2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:实例#!/usr/bin/python3dict={['Name']:'Runoob','Age':7}print("dict['Name']:",dict['Name'])以上实例输出结果:
Traceback(mostrecentcalllast):File"test.py",line3,in
#1、{}定义d1={"name":"egon","age":18,"sex":"man"}print(d1,type(d1))#{'name':'egon','age':18,'sex':'man'}
实例#!/usr/bin/python3dict={'Name':'Runoob','Age':7,'Class':'First'}dict['Age']=8;#更新Agedict['School']="菜鸟教程"#添加信息print("dict['Age']:",dict['Age'])print("dict['School']:",dict['School'])以上实例输出结果:dict['Age']:8dict['School']:菜鸟教程删除字典元素能删单一的元素也能清空字典,清空只需一项操作。1、用pop方法删除(标准的删除姿势)
代码dict={'Name':'Runoob','Age':7,'Class':'First'}dict.pop('Class')print(dict)执行结果{'Name':'Runoob','Age':7}2、用del命令删:实例
dict={'Name':'Runoob','Age':7,'Class':'First'}deldict['Name']#删除键'Name'print(dict)//执行结果{'Age':7,'Class':'First'}3、popitem()随机删除
dict={'Name':'Runoob','Age':7,'Class':'First'}dict.popitem()print(dict)执行结果{'Age':7,'Class':'First'}查找字典中的元素//代码info={'stu1101':'TengLanWu','stu1102':'LongZeLuola','stu1103':'XiaoZeMaliya'}'}print('stu1102'ininfo)#标准用法print(info.get('stu1103'))#获取print(info['stu1102'])#查找键为’stu1102’的值print(info)#输出整个字典print(info.keys())#输出字典info的所有键print(info.values())#输出字典info的所有值执行结果TrueXiaoZeMaliyaLongZeLuola{'stu1103':'XiaoZeMaliya','stu1102':'LongZeLuola','stu1101':'TengLanWu'}dict_keys(['stu1103','stu1102','stu1101'])dict_values(['XiaoZeMaliya','LongZeLuola','TengLanWu'])#如果一个key不存在,就报错,get不会,不存在只返回None//print(info['stu1105'])Traceback(mostrecentcalllast):File"
d={'k1':111,'k2':2222}#在python2中>>>d={'k1':111,'k2':2222}>>>>>>d.keys()#6、循环['k2','k1']>>>d.values()[2222,111]>>>d.items()[('k2',2222),('k1',111)]>>>dict(d.items()){'k2':2222,'k1':111}>>>
移除dict中的元素(只能移除1个元素):pop(),()内不能为空,要有key;若key不在dict内,需要主动给出需要返回的数据,否则报错;A、key在dict_1内dict_1={1:'a',2:'b',3:'c',4:'d',5:'e'}a=dict_1.pop(2)print(dict_1,a)-->{1:'a',3:'c',4:'d',5:'e'}bB、key不在dict_1内:返回pop给定的数据dict_1={1:'a',2:'b',3:'c',4:'d',5:'e'}a=dict_1.pop(6,[1,2,3,4])print(dict_1,a)-->{1:'a',2:'b',3:'c',4:'d',5:'e'}[1,2,3,4]
dict={'Name':'Runoob','Age':7,'Class':'First',}foriindict:#推荐使用print(i)或者:
dict={'Name':'Runoob','Age':7,'Class':'First',}foriindict.keys():print(i)//遍历打印key和value
dict={'Name':'Runoob','Age':7,'Class':'First',}foriindict:print(i,dict[i])或者
dict={'Name':'Runoob','Age':7,'Class':'First',}foriindict.keys():print(i,dict[i])方法二
dict={'Name':'Runoob','Age':7,'Class':'First',}fork,vindict.items():print(k,v)