一:字典定义
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象。具有极快的查找速度。
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型
字典创建方式
方式一: my_dict = dict(name='小明',age=18,性别='男') #注意键都不要加引号,键只能是字符类型 方式二: my_dict = {'name': '小明', 'age': 18, '性别': '男'} #注意字符串类型的键要加引号 方法三: my_dict = dict(((1,'小明'),('age',18)))
my_dict = dict([(1,'小明'),('age',18)])
my_dict = dict(zip(('name','bob'),('age',40)))
方法四:dict--fromkeys方法# 如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化
>>> D5 = dict.fromkeys(['A','B'],0)
>>> D5
{'A': 0, 'B': 0}
或者
>>> D3 = dict.fromkeys(['A','B'])
>>> D3
{'A': None, 'B': None}
注意:
每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
键必须独一无二,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
二:字典的用法
1.字典查询
my_dict = {'name': '小明', 'age': 18, '性别': '男'} 查询字典的键对应的值: 方法一:my_dict['name'] #如果键不存在报错KeyError 方法二:my_dict.get('name') #如果键不存在返回None(也可以自定义返回值) 查询字典所有的键: 方法一:my_dict.keys() #返回dict_keys(['name', 'age', '性别']) 方法二:set(my_dict) #返回集合{'性别', 'age', 'name'} 查询字典所有的值 my_dict.values() 查询字典所有的项 my_dict.items()
查询字典是否存在某个键
"age" in my_dict #存在返回True否则返回False
2.字典的新增和修改
my_dict = {'name': '小明', 'age': 18, '性别': '男'} my_dict['班级'] = '3班' #键不存在则新增键值 my_dict.update({'班级':"3班"}) #将字典2添加到字典1中 my_dict['age'] = 20 #键存在修改键对应的值
3.字典的删除
my_dict = {'name': '小明', 'age': 18, '性别': '男'} del my_dict['age'] #删除键是age的项
my_dict.pop['age'] #删除键是age的项,并返回age项的值
my_dict.clear() #清空字典的内容 del my_dict #删除字典
三:字典常用内置方法
1.fromkeys() 创建一个新字典,fromkeys(*args, **kwargs) 以*args中元素做字典的键,**kwargs为字典所有键对应的初始值
list_data = ['name', 'age', '性别'] d = dict.fromkeys(list_data) 结果:d为{'name': None, 'age': None, '性别': None} list_data = ['name', 'age', '性别'] d = dict.fromkeys(list_data,'哈哈') 结果:d为 {'name': '哈哈', 'age': '哈哈', '性别': '哈哈'}
2.pop()方法删除指定的key,pop(self, k, d=None) 参数: k:待删除的key d:如果待删除的key,则返回None ,或指定什么返回什么
my_dict = {'name': '小明', 'age': 18, '性别': '男'} p = my_dict.pop('name') #如果键不存在时报错 print(p) #小明 print(my_dict) #{'age': 18, '性别': '男'} p = my_dict.pop('年级','年级未知') print(p) #年级未知
3.popitem()方法,返回并删除字典中的最后一对键和值。
my_dict = {'name': '小明', 'age': 18, '性别': '男'} p = my_dict.popitem() print(p) #('性别', '男') print(my_dict) #{'name': '小明', 'age': 18}