Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
#!/usr/bin/python3
dict= {}
dict['one']="1 -菜鸟教程"
dict[2]="2 -菜鸟工具"
print(dict['one'])#输出键为 'one' 的值
print(dict[2])#输出键为 2 的值
print(tinydict)#输出完整的字典
print(tinydict.keys())#输出所有键
print(tinydict.values())#输出所有值
以上实例输出结果:
1-菜鸟教程
2-菜鸟工具
dict_keys(['name','code','site'])
构造函数 dict() 可以直接从键值对序列中构建字典如下:
>>>dict([(oops,1),('Google',2),('Taobao',3)])
{'Taobao':3,oops:1,'Google':2}
>>> {x:x**2forxin(2,4,6)}
{2:4,4:16,6:36}
>>>dict(Oop=1,Google=2,Taobao=3)
{'Taobao':3,oops:1,'Google':2}
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
注意:
·1、字典是一种映射类型,它的元素是键值对。
·2、字典的关键字必须为不可变类型,且不能重复。
·3、创建空字典使用{ }。
访问字典里的值
把相应的键放入到方括号中,如下实例:
#!/usr/bin/python3
dict= {'Name':oops,'Age':7,'Class':'First'}
print("dict['Name']:",dict['Name'])
print("dict['Age']:",dict['Age'])
以上实例输出结果:
dict['Name']:Oop
dict['Age']:7
如果用字典里没有的键访问数据,会输出错误如下:
#!/usr/bin/python3
dict= {'Name':oops,'Age':7,'Class':'First'};
print("dict['Alice']:",dict['Alice'])
以上实例输出结果:
Traceback(most recent calllast):
File"test.py",line5,in
print("dict['Alice']: ",dict['Alice'])
KeyError:'Alice'
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
#!/usr/bin/python3
dict= {'Name':oops,'Age':7,'Class':'First'}
dict['Age']=8;#更新 Age
dict['School']="菜鸟教程"#添加信息
print("dict['Age']:",dict['Age'])
print("dict['School']:",dict['School'])
以上实例输出结果:
dict['Age']:8
dict['School']:菜鸟教程
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
#!/usr/bin/python3
dict= {'Name':oops,'Age':7,'Class':'First'}
deldict['Name']#删除键 'Name'
dict.clear()#清空字典
deldict#删除字典
print("dict['Age']:",dict['Age'])
print("dict['School']:",dict['School'])
但这会引发一个异常,因为用执行 del 操作后字典不再存在:
Traceback(most recent calllast):
File"test.py",line9,in
print("dict['Age']: ",dict['Age'])
TypeError:'type'objectisnotsubscriptable
注:del()方法后面也会讨论。
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
#!/usr/bin/python3
dict= {'Name':oops,'Age':7,'Name':'小菜鸟'}
print("dict['Name']:",dict['Name'])
以上实例输出结果:
dict['Name']:小菜鸟
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
#!/usr/bin/python3
dict= {['Name']:oops,'Age':7}
print("dict['Name']:",dict['Name'])
以上实例输出结果:
Traceback(most recent calllast):
File"test.py",line3,in
dict={['Name']:oops,'Age':7}
TypeError:unhashable type:'list'
字典内置函数&方法
Python字典包含了以下内置函数:
Python字典包含了以下内置方法:
领取专属 10元无门槛券
私享最新 技术干货