一.字典:
1. 字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
1.1 字典的创建:
(1)dic = {k:v}
(2)fromkeys
fromkeys() 函数用于创建一个新字典,以序列 seq 中的每个元素做字典的键,value 为字典所有键对应的初始值。
- 语法:dict = dict.fromkeys(seq, value )
- seq -- 字典键值列表。
- value -- 可选参数, 设置键序列(seq)的值。
2. 增删改查
增:
dic[key] = value 键不在字典中存在,添加键值对
dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
可以通过key查询,没有这个key返回None
dic = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} dic['火女'] = '人头狗' # 新增
print(dic) dic.setdefault('火女','安妮') # 如果键在字典中存在就不进行任何操作,不存在就进行添加{'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
dic.setdefault('*','火男')
print(dic) #{'火女': '安妮', '火男': '布兰德', '维恩': '暗影猎手', '剑豪': '哈莎阁', '*': '火男'}
删:
pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除 #返回值 一个元组 (key,value)
clear() 清空字典
改:
dic[key] = value # 强制修改
dic.update(dic1) #更新 用dic1对 dic更新
dic = {'火女':'小熊','维恩':'暗影','剑豪':'hash aq'}
dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
dic.update(dic1)
print(dic) # {'火女': '安妮', '维恩': '暗影猎手', '剑豪': '哈莎阁', '火男': '布兰德'}
查:
get(key, 返回内容) #没有返回None 或 可以指定返回内容
dic[key] #没有这个键的时候查询会报错
setdefault(key) 没有返回None
for 循环 查
3.字典的其他操作:
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
解构:
a,b = 1, 2 a,b = (1,2) a,b = [1,2]
4. 字典的嵌套:
dic = {
'name':'王二',
'age':43,
'wife':{
'name':'张三',
'age':39,
'salary':100000
},
'baby':[
{'name':'熊大','age':18},
{'name':'熊二','age':15},
] } dic['baby'][0]['age'] = 19 print(dic)