Python------魔鬼中的天使
5.1字典
5.11字典是什么
dict
{} "键":"值" 在别的语言叫键值对数据
dic = {"key":"value",1:2,2:3}
键:必须是可哈希(不可变的数据类型),并且是唯一的
值: 任意
字典是无序的,Python3.6版本以上 默认了咱们定义顺序,Python3.5以下随机显示
字典是可变的,增加,删除,修改,查看, 其他操作
5.12字典怎么用
增加
1.setdefault (dic.setdefault("键","值"))
dic = {"a":"b","b":"d"}
dic.setdefault("c","aaa")
print(dic)
or print(dic.setdefault("D"))
先去字典查看要添加的键存不存在,如果键在字典中存在就不添加,不存在就添加.
2.dic["键"] = "值"
删除
dic = {"a":"b","b":"d"}
print(dic.pop("a")) 通过键删除 pop具有返回值,返回的被删除的值
print(dic)
字典中没有remove
del dic 删除整个字典
print(dic)
del dic["b"] 删除指定的键值对
print(dic)
dic.clear() 清空
print(dic) 删除整个字典中的键值对
修改
dic1 = {"a":"b","b":"d"}
dic["b"] = "这是值" 键在字典中存在就是修改,键在字典中不存在就是增加
print(dic)
dic2 = {1:2,"a":"a1"}
dic2.update(dic0 update括号里的字典级别高,此处dic1和dic2中有相同键的话,dic1取代dic2的值
print(dic2)
查看
字典的查询只能通过键获取值,不能通过值获取键
dic = {1:2,"a":"a1"}
print(dic["c"]) 如果有键在字典中存在就放回键对应的值,如果不存在就报错
get --- 获取
print(dic.get("c","你不是傻,你个狍子))
获取值得时候可以指定返回的内容,不指定返回内容且键不存在的时候返回none不报错
扩展
dic = {1:2,"a":"a1"}
for i in dic: for循环字典的时候打印的是字典的键
print(i,dic[i])
其他方法:
# for i in dic:
# print(i) 循环的是字典的键
#
# for i in dic.keys():
# print(i)
#
# dic.keys() -- 返回的是一个高仿列表 -- 没有索引
# dic.values() -- 返回的是一个高仿列表 -- 没有索引
# dic.items() -- 返回的是一个高仿列表,列表里存放的是元组类型,\
# 元组第一个是键,第二个元素是值
解构
a = 1
b = 1
a,b = b,a
解构的值可以是元素,字符串,列表,元组,字典
枚举
li = [1,2,3,4,54]
for i,k in enumerate(li): enumerate 第二个参数默认不写就是0
(enumerate(li,起始数) 默认是0,也可以自己定起始数)
print(i,k)
字典的嵌套
# dic = {
# 101:{1:["周杰伦","林俊杰"],2:{"汪峰":["国际章",{"前妻1":["熊大","熊二"]},
# {"前妻2":["葫芦娃","木吒"]}]}},
# 102:{1:["李小龙","吴京","李连杰"],2:{"谢霆锋":["张柏芝","王菲"]},
# 3:["alex","wusir","大象","奇奇"]},
# 103:{1:["郭美美","干爹"],2:{"王宝强":{"马蓉":"宋哲"}}},
# 201:{1:["凹凸曼","皮卡丘"],2:{"朱怼怼":{"杨幂":"刘恺威"}}}
# }
# print(dic[101][2]["汪峰"][2]["前妻2"][0])
#['国际章', {'前妻1': ['熊大', '熊二']}, {'前妻2': ['葫芦娃', '木吒']}]
#{'前妻2': ['葫芦娃', '木吒']}
#['葫芦娃', '木吒']
# home1 = dic[102][3][2]
# {1: ['李小龙', '吴京', '李连杰'],
# 2: {'谢霆锋': ['张柏芝', '王菲']},
# 3: ['alex', 'wusir', '大象', '奇奇']}
# print(home1)
# print(dic[103][2]["王宝强"]["马蓉"])
5.13字典能干啥
字典是存储大量的数据,字典比列表还大
字典的查找值的时候能够方便,快捷
li = ["a","b","c","d"]
字典能够将数据进行关联
dic = {"a":"b","b":"c","c":"d"}
字典比较消耗内存 最常用的数据:字符串,列表,字典
有明确的对应关系时,推荐使用字典 字典一定要用明白----Json
目前所学的知识点字典不能转换