字典是另一种可变容器模型,且可存储任意类型对象。
创建字典
- 字典的每个键值(key=>value)对用冒号(:)分割,
- 每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
dict = {key1 : value1, key2 : value2 }
- 键必须是唯一的,但值则不必。
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
dict = {'name': '静静', 'age': 18, 'gander': '女'}
访问字典元素
把相应的键放入到方括号中,如下实例:
dict = {'name': '静静', 'age': 18, 'gander': '女'}
print('name:',dict['name'])
print('age:',dict['age'])
运行结果:
name: 静静
age: 18
如果用字典里没有的键访问数据,会输出错误如下:
dict = {'name': '静静', 'age': 18, 'gander': '女'}
print(dict['hh'])
运行结果:
Traceback (most recent call last):
File "C:/workspace/pythonTest/0912/dict.py", line 2, in <module>
print(dict['hh'])
KeyError: 'hh'
修改字典
添加元素
如果字典中键不存在会直接添加
ict = {'name': '静静', 'age': 18, 'gander': '女'}
dict['phone'] = '12345' #添加元素
print(dict)
运行结果:
{'name': '静静', 'age': 18, 'gander': '女', 'phone': '12345'}
修改元素
如果字典中键存在则会直接修改该元素
dict = {'name': '静静', 'age': 18, 'gander': '女'}
dict['age']=20
print(dict)
运行结果:
{'name': '静静', 'age': 20, 'gander': '女'}
删除字典元素
可以删除单个元素也可以直接删除整个字典
单个移除:
dict = {'name': '静静', 'age': 18, 'gander': '女'}
del dict['gander']
print(dict)
运行结果:
{'name': '静静', 'age': 18}
字典清空:
dict = {'name': '静静', 'age': 18, 'gander': '女'}
dict.clear()
print(dict)
运行结果:
{}
可见结果变成空字段,就是清空只清除字典中的元素,但是字典还是存在的;
删除字典
dict1 = {'name': '静静', 'age': 18, 'gander': '女'}
del dict1
print(dict1)
运行结果:
Traceback (most recent call last):
File "C:/workspace/pythonTest/0912/dict.py", line 3, in <module>
print(dict1)
NameError: name 'dict1' is not defined
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
dict1={'name':'静静','age':20,'name':'小静'}
print(dict1)
print(dict1['name'])
运行结果:
{'name': '小静', 'age': 20}
小静
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
dict1={('name',):'静静','age':20} #元组作为键
print(dict1)
print(dict1[('name',)])
dict2={['name']:'静静','age':20} #列表作为键
print(dict2)
运行结果:
{('name',): '静静', 'age': 20}
静静
Traceback (most recent call last):
File "C:/workspace/pythonTest/0912/dict.py", line 8, in <module>
dict2={['name']:'静静','age':20}
TypeError: unhashable type: 'list'
字典内置函数
Python字典包含了以下内置函数:
- len(dict) 计算字典元素个数,即键的总数。
- str(dict) 输出字典,以可打印的字符串表示。
dict = {'name': '静静', 'age': 18, 'gander': '女'}
print(len(dict))
print(dict)
print(str(dict))
运行结果:
3
{'name': '静静', 'age': 18, 'gander': '女'}
{'name': '静静', 'age': 18, 'gander': '女'}