文章目录
- {}或dict()方法
- zip()方法
- formkeys
- 三、访问字典元素
- 键访问值
- get()方法访问
- items()访问
- keys()/values()
- len()查看字典键值对长度
- 检查字典中某个键是否存在
- 四、增删改字典
- 通过增加新的键值对
- 使用update()方法
del()、clear()、pop()删除字典元素
popitem()随机删除并返回一组键值对
一、字典是什么?
字典:键(key)值(value)对组成的无序可变序列
例:
dic = {"color":"green","age":18}
- 键对象是任意不可变对象,如:整数、浮点数、元组等
- 列表、字典、集合这些可变对象不能作为键对象
- 键对象是不可重复的
- 值在字典中可以是任意数据,可以重复出现
二、字典的创建
-
通过{}、dict()方法建立字典:
a = {'name':'张三',"age":18}
a = dict(name='张三',age=18) b = dict([('color','green'),('points',5)]) # dict()方法两种创建字典的方式 # a:{'name': '张三', 'age': 18} # b:{'color': 'green', 'points': 5}
-
通过zip()方法建立字典:
key = ['name','age','job'] value = ['张三','18','programmer'] dic = dict(zip(key,value)) # dic:{'name': '张三', 'age': '18', 'job': 'programmer'}
-
通过fromkeys创建:
dic = dict.fromkeys(['name','age','job']) # dic:{'name': None, 'age': None, 'job': None}
三、字典元素访问
-
通过键访问值:
dic = {'name':'张三','age':18,'job':'progrrammer'} a = dic['name'] # a接受了来自字典中键对象为“name”的值 # a:张三
-
通过get()方法访问:
dic = {'name':'张三','age':18,'job':'progrrammer'} a = dic.get("age") # a接受了字典中键对象为age的值 # a:18
dic = {'name':'张三','age':18,'job':'progrrammer'} a = dic.get("性别") # 当访问的键对象不存在 # a:None # 若不存在要搜索的键对象,则默认返回None # 可以在后面加一个参数表示没有要搜索的键对象是返回的值
-
items()方法列出所有元素:
dic = {'name':'张三','age':18,'job':'progrrammer'} a = dic.items() # a:dict_items([('name', '张三'), ('age', 18), ('job', 'progrrammer')])
-
列出所有键(keys方法)/值(values方法):
dic = {'name':'张三','age':18,'job':'progrrammer'} k = dic.keys() v = dic.values() # key:dict_keys(['name', 'age', 'job']) # value:dict_values(['张三', 18, 'progrrammer'])
-
len()查看键值对个数:
dic = {'name':'张三','age':18,'job':'progrrammer'} num = len(dic) # num:3 # 结果为键值对个数
-
检查键是否在字典中存在:
dic = {'name':'张三','age':18,'job':'progrrammer'} result_1 = "name" in dic result_2 = "姓名" in dic # result_1:True # result_2:False # 如果键在字典中可找到则返回True # 若键在字典里找不到则返回False
四、字典的增删改
-
通过增加新的键值对:
dic = {'name':'张三','age':18,'job':'progrrammer'} dic['address'] = '江苏' dic['age'] = 28 # 原来的字典中没有叫address的值->在原来的字典中添加 # 原来的字典中有叫age的值->把原来的字典中age所对应的键值对替换 # dic:{'name': '张三', 'age': 28, 'job': 'progrrammer', 'address': '江苏'} # 健存在则覆盖原键所对应的值,若不存在则新增键值对
-
使用update()方法:
dic_1 = {'name':'张三','age':18} dic_2 = {'age':28,'job':'progrrammer'} dic_1.update(dic_2) # 将字典中所有键值对全部增加到旧字典中,如果键存在则覆盖原来的键值对 # dic_1.update(dic_2)将dic_2中元素加到dic_1 # 若dic_2中键值对在dic_1中没有,则直接添加到dic_1 # 若dic_2中键值对在dic_1中存在,则覆盖原来dic_1中的键值对
-
del()、clear()、pop()删除字典元素:
dic = {'name':'张三','age':18,'job':'progrrammer'} del(dic['name']) # dic:{'age': 18, 'job': 'progrrammer'}
dic = {'name':'张三','age':18,'job':'progrrammer'} name = dic.pop('name') # name:张三 # dic:{'age': 18, 'job': 'progrrammer'}
dic = {'name':'张三','age':18,'job':'progrrammer'} dic.clear() # dic:{}
区别:
del->指定键名称进行删除
pop->指定键名称进行删除,并可以设置有一个变量来接受键所对应的值。
clear->清空弹夹,直接把所有键值对都删喽
-
popitem()随机删除并返回一组键值对:
dic = {'name':'张三','age':18,'job':'progrrammer'} dic.popitem() # 随机删除一组键值对,可能有规律,但有规律不代表有顺序 # 可以再用一个变量来接受这组键值对