一、字典是什么?
字典是另一种可变容器模型,且可存储任意类型对象。字典内容包括键和值,也就是键值对。整个字典在{}内,即:
d = {key1 : value1, key2 : value2, key3 : value3 }
二、创建字典
代码如下(示例):
dict={'key1':'value1','key2':'value2'}#这是创建有内容字典
dict={}#这是创建一个空字典
三、字典使用
1.访问字典里的内容
代码如下(示例):
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
使用的是 字典名[键名]的方法访问。如果访问的是一个不存在的键就会报错!
2.字典的增改
dict = {'Name': 'QQ', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "XUTP" # 添加信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict['Age']: 8
dict['School']: XUTP
由此不难看出,字典的增和改都是通过 字典名[键值] 的形式对字典进行访问,如果键原本存在则修改原来的值,如果键不存在就把现在的键和值添加到字典中。
删除字典内容
删除字典内容有一下几种方法:
1.del:删除整个字典,包括字典对象
dict = {'Name': 'QQ', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "XUTP" # 添加信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
Traceback (most recent call last):
File "test.py", line 9, in <module>
print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable
2.del 字典名[键值]:删除的是指定的键值对
dict = {'Name': 'QQ', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "XUTP" # 添加信息
print("dict['Age']: ", dict['Age'])
print("dict['School']: ", dict['School'])
del dict['Name']
print(dict)
dict['Age']: 8
dict['School']: XUTP
{'Age': 8, 'Class': 'First', 'School': 'XUTP'}
3.字典名.clear():清空字典所有内容,即变成空字典
dict = {'Name': 'QQ', 'Age': 7, 'Class': 'First'}
dict.clear()
print(dict)
{}
字典的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。也就是说值可以随便定义,但是键不行。因为键是不可变类型,所有只能用数字、字符串、元祖定义,而不可以是列表和字典这种可变类型。还有一点不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。
如:
dict = {'Name': '菜鸡', 'Age': 7, 'Name': '小菜鸟'}
print ("dict['Name']: ", dict['Name'])
dict['Name']: 小菜鸟
总结
字典和列表、元祖有着很大的区别,字典内容的存放是无序的,我们不能通过下标索引来访问字典中的值。因此要严格遵守要求,同时也可以通过dict.items()方法来获取字典内容。