1 字典的定义
字典是一个无序的,可修改的,元素呈键值对的形式,以逗号分割的,以大括号包围的序列;
字典是python基础数据类型当中唯一一个映射关系的数据类型;
由于字典无序,所以我们定义字典和字典生成之后的元素顺序是不同的;
dic = {key:value,key1:value,...}
2、字典的key的类型只能是不可变数据类型,value可以是可变数据类型
dic = {'name':'zs',10:32,(1,2,3):(2,3,4)} print(dic)#{10: 32, 'name': 'zs', (1, 2, 3): (2, 3, 4)} dic = {'name':'zs',10:32,[1,2,3]:(2,3,4)} print(dic) #报错
3字典的增、删、改、查
(1)字典的增加
dic = {'name':'zs','age':10,'height':1.75} dic.setdefault('weight',170)#setdefault {'height': 1.75, 'weight': 170, 'name': 'zs', 'age': 10} dic.setdefault('weight',180)# 如果 key在字典中就已经存在 就不会覆盖字典中的值 dic['weight'] = 180 #根据key来设置值 dic['weight'] = 120#如果key存在,就直接覆盖掉原有的值 {'weight': 120, 'height': 1.75, 'age': 10, 'name': 'zs'} print(dic)
(2)删除操作
dic = {'name':'zs','height':1.75} dic.pop('name') 按照‘键’删除值 print(dic)# {'height': 1.75, 'age': 10} dic.popitem() 随机删除一个键值对 dic.clear() 清除字典中的左右键值对 del dic 直接从内存中删除变量 , 效果是报错 deldic['name'] 根据键值对删除
(3)修改操作
dic = {'name':'zs','age':10,'weight':1.33} 根据键来修改值 dic['name'] = '赵四' dic1 = {'name':'赵四','height':1.75} dic.update() 需要传递一个字典,如果key相同就直接修改对应的value,如果key不存在就直接添加键值对 dic.update(dic1)
(4)查找操作
dic = {'name':'zs','age':10,'weight':1.33} value = dic.get('name') 根据键获取对应的值我们可以定义一个变量接收返回值 print(value) ret = dic.key 获取所有的‘键’ values = dic.values() 获取所有的‘值’ ret = dic.items() 返回列表套元组的形式 ret = len(dic) 返回键值对个数 tup = (1,2,3,) ret = dict.formkeys(tup,'aa') # {1: 'aa', 2: 'aa', 3: 'aa'} print(ret)
4.python字典的特点
因为字典是无序的,所以没有索引值
因为字典没有索引值,所以字典以键取值,(字典的键相当于列表的索引)
因为自电视以键取值,所以字典的键具有唯一性,且不可修改
因为字典的键不可修改,所以列表和字典可变类型的数据不可以给字典做键
5.字典的遍历
in 判断指定的键是否在字典中
not in 判断指定的键是否不再字典中
dic = {'name':'zs','weight':129,'age':10} for key,value in dic.items(): print(key,'---',value) 结果: age --- 10 name --- zs weight --- 129
for.....in ...... 通过for.....in ...... :的语法结构,我们可以遍历字符串、列表、元组、字典等数据结构
in 和not in dic = {'name':'zs','weight':129,'age':10} key = dic.keys() if 'name' not in keys: dic['name'] = '赵四' else: dic['name'] = '尼古拉斯' dict_keys(['age', 'name', 'weight']) {'age': 10, 'name': '尼古拉斯', 'weight': 129} print(dic) for key in dic.key(): # 只获取key print(key) 结果: name weight age