python:数据类型( dict )
字典
dict 用{ } 来表示 键值对数据 {key:value} 具有唯一性
键 key: 都必须是哈希的, 不可变的数据类型才可以做字典中的键
值 value: 没有任何的限制,任何数据类型都可以
字典本身是无序的(不可以切片),但是3.6版本添加了有序
1 #字典的键key可以是什么, 值value(任何类型都可以) 2 dic={"name":"alex","age":9000} # 键可为字符串 3 print(dic) 4 dic={1:"a",2:"b",3:"c"} # 键可为数字 5 print(dic) 6 dic={True:"1",False:"0"} # 键可为bool 7 print(dic) 8 dic={(1,2,3):"ahd"} # 键可为tuple 元组 9 print(dic) 10 11 dic={[1,2,3]:"abhd"} # 键不可为列表 **** 集合也不可用做键 12 print(dic)
字典的增删改查
补充:dic[key]=value 索引键key可用来 添加\删除\修改\查看
一、增加
dic[key]=value #直接索引 键key 赋value值 更改
dic.setdefault(key,value) #如果key在字典中存在,不进行操作**,否则添加
#也可以通过key查询,没有则返回None
1 dic={"易大师":"剑圣","剑豪":"托儿所","草丛伦":"大宝剑"} 2 3 dic["诺手"]="人头狗" #新增 结尾处 如果key在字典中存在,就修改value值,不存在就在结尾处添加 4 print(dic) 5 6 dic.setdefault("火女","安妮") # 新增 结尾处 中间用逗号隔开 7 dic.setdefault("火女","火男") # 如果key在字典中存在不进行任何操作,不存在就进行添加 8 print(dic)
二、删除
dic.pop(key) #通过指定key删除字典中的内容,可返回被删除的Value值
del dic[key] #通过键来删除 不放key 则删除整个字典
dic.clear( ) #清空字典
dic.popitem( ) #随机删除, 在3.6版本中默认删除最后一个
#也有返回值 返回的是元组 ( key,value )
字典的删除没有 remove( )
dic={"易大师":"剑圣","剑豪":"托儿所","草丛伦":"大宝剑"}
ret=dic.pop("易大师") # 通过指定key删除字典中内容,返回的是value值
print(ret) # 接收到的删除的内容是value
print(dic)
del dic["易大师"] # 通过键删除
print(dic)
dic.clear() # 清空返回的是{} 空字典
print(dic)
ref=dic.popitem() #随机删除 但在3.6版本中默认删除最后一个
#也有返回值 返回的是元组 ("key","value")
print(dic)
三、修改
dic[key]=value # 索引 键key 既可以用来修改也可以用来添加
dic.update(字典名) # 用新的字典去更新原字典
替换时,若key值在原字典中存在,只修改value值,
不存在,在结尾处添加
dic={"易大师":"剑圣","剑豪":"托儿所","草丛伦":"大宝剑"}
dic["剑豪"]="哈莎阁" # 索引键key 来强制修改
print(dic)
dic1={"火女":"安妮","火男":"布兰德","剑豪":"暗影猎手"}
dic.update(dic1) #替换时,若key值在元字典中存在,则只修改value值,不存在的在结尾处添加
print(dic)
#输出:{'易大师': '剑圣', '剑豪': '暗影猎手', '草丛伦': '大宝剑', '火女': '安妮', '火男': '布兰德'}
四、查
dic[key] # 索引 键key查看 不存在时会报错
dic.get(key) # 查看时 key 不存在会返回None
dic.get(key,"自定义内容") # 查看时 key 不存在 也可返回自定义内容
dic.setdefault(key) # 即可查询,当有Value时,也可用于添加,key存在,无操作
for 循环 #当 for i in dic 时,获取的是key
dic = {"易大师": "剑圣", "剑豪": "托儿所", "草丛伦": "大宝剑"}
# 查看的是value值
print(dic["易大师"]) # 查看1 键不存在时 会报错
print(dic.get("易大师")) # 查看2 键不存在时 返回none 建议使用get
print(dic.get("易大师父", "你傻啊,没有")) # 不存在 也可返回自定义的"你傻啊,没有"
print(dic.setdefault("易大师")) # 查看3 也可用于查询 若赋值则可修改
# for循环查看的是key
for i in dic:
print(i) # 循环默认获取的是字典中的键
字典的其他操作
keys values items
dic={"易大师":"剑圣","剑豪":"托儿所","草丛伦":"大宝剑"}
print(dic.keys()) # 获取的是高仿列表
#输出:dict_keys(['易大师', '剑豪', '草丛伦'])
print(dic.values()) # 获取的是高仿列表
#输出:dict_values(['剑圣', '托儿所', '大宝剑'])
print(dic.items()) #高仿列表 获取的是每一个元组
#输出:dict_items([('易大师', '剑圣'), ('剑豪', '托儿所'), ('草丛伦', '大宝剑')])
for i in dic:
print(i) #输出key
for i in dic.keys():
print(i) #输出key
for i in dic.values():
print(i) #输出value
for i in dic.items():
print(i) #输出键值对,以元组( )的形式展现
解构(解包)
将后面的解构打开,按照位置赋值给变量,
支持字符串\列表\元组
a,b=(1,2) #元组 print(a) # 1 print(b) # 2 a,b=[1,2] #列表 print(a) # 1 print(b) # 2 a,b="12" #字符串 print(a) # 1 print(b) # 2 dic={"1":"2"} for a,b in dic.items(): print(a) #1 print(b) #2
补充:
批量创建key dic.formkeys()
dic1={} dics=dic1.fromkeys([1,2,3]) #批量创建 key print(dics) #输出:{1: None, 2: None, 3: None} dics=dic1.fromkeys([1,2,3],"abc") print(dics) #输出:{1: 'abc', 2: 'abc', 3: 'abc'}
字典的嵌套
dic={"name":"汪峰",
"age":39,
"wife":{"name":"国际章",
"age":39,
"salary":100000
},
"baby":[
{"name":"熊大","age":18},
{"name":"熊二","age":15}
]
}
print(dic["baby"][0]["age"]) #查找熊大的年龄
print(dic.get("baby")[0].get("age")) #查找熊大的年龄
dic["baby"][0]["age"]=19 #将熊大的年龄改为19

浙公网安备 33010602011771号