字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
创建字典
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
访问字典里的值
#!/usr/bin/python3
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
如果字典里没有键访问数据,会输出错误
#!/usr/bin/python3
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])
修改字典
#!/usr/bin/python3
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8;
dict['School'] = "菜鸟教程"
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令。
#!/usr/bin/python3
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
字典的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
#!/usr/bin/python3
dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鸟'}
print ("dict['Name']: ", dict['Name'])
!!!不允许同一个键出现两次。如果一个键出现两次,后一个值会被记住。
#!/usr/bin/python3
dict = {['Name']: 'Runoob', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
!!!键必须不可变,可以使用数字,字符串或元组,不能用列表。
字典内置的函数
len(dict) #计算字典元素个数
str(dict) #以字符串的方式输出字典
type(dict) #返回输入的变量类型。
.clear() #清除字段里所有的元素
.copy() #字典的浅复制
.formkeys() #创建字典,以序列seq中的元素作为键,val为字典所有对应键的初始值
.get(key,default=None) #设置不在字典中默认的值
.key in dict #键是否在字典里,返回true或false
.items() #以列表的方式遍历(键,值)元组数组
.keys() #使用list()转换为列表
.setdefault(key,default=None) #为不存在于字典中的键,添加或设置键为default
.update() #把字典里的键和值更新到另一个字典里
.values() #使用list()转换为列表
.pop(key[.default]) #删除字典键的值,返回删除键的值
popitrm() #随机删除字典中的一对键值(一般删除末尾的一对)