dict字典;dict的操作

一.字典:

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)