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

目前所学的知识点字典不能转换

posted @ 2019-06-10 15:18  口吐芬芳  阅读(285)  评论(0编辑  收藏  举报