字典无序的,可变的数据类型
用于存储大量数据,字典要比列表快,将数据和数据之间进行关联
lst1 = ['常鑫','李文虎','张宇'] # 姓名 lst2 = [10,80,100] # 分数 print(lst1[0],lst[0])
逗号分隔叫做一个元素
{键 : 值,键 : 值} ——键值对
字典以散列表和哈希表存储
字典的键必须是可哈希的——不可变的数据类型——避免哈希冲突使用了(开放寻址法)
不可哈希的——可变的数据类型:列表
要求唯一——如果有重复的后面的将前面的覆盖
字典的值:可以任意
定义:dic = {} dic = {"常鑫":10,"李文虎":80,"张宇":100,10:"大黑哥",true:123,(1,2,3):"大煎饼",[1,2]:"meet"} print(dic)
dic = {'常鑫':[1,2,3],'李文虎':'89'} dic['李文虎'] = 99 print(dic)
用李文虎这个键去字典进行查询,如果不存在就执行添加,如果存在就不添加
dic = {'常鑫':[1,2,3],'李文虎':'89'} dic.setdefault('李文虎':'99') print(dic) print(dic.setdefault('李文虎'))
dic = {'常鑫':[1,2,3],'李文虎':'89'} del dic['常鑫'] print(dic)
也有返回值:返回的是被删除的值
dic = {'常鑫':[1,2,3],'李文虎':'89'} print(dic.pop('常鑫')) print(dic)
dic = {'常鑫':[1,2,3],'李文虎':'89'} dic.clear() print(dic)
dic = {'常鑫':[1,2,3],'李文虎':'89'} dic['常鑫'] = 'dsb' print(dic)
dic = {"常鑫":[1,2,3],'李文虎': '89'} dic1 = {"1":3,"5":9,"李文虎":100} dic1.update(dic) print(dic1)
dic = {"常鑫":[1,2,3],'李文虎': '89'} for i in dic: print(i)
dic = {"常鑫":[1,2,3],'李文虎': '89'} print(dic.get('常鑫'))# 结果是[1,2,3] dic = {"常鑫":[1,2,3],'李文虎': '89'} print(dic.get('cx'))# 结果是none
dic = {"常鑫":[1,2,3],'李文虎': '89'} print(dic['常鑫']) # 结果是[1,2,3] dic = {"常鑫":[1,2,3],'李文虎': '89'} print(dic['cx']) # 报错
dic = {"1":3,"5":9,"李文虎":100} for i in dic: print(i,dic.get(i)) # 获取所有键和值
print(list(dic.keys())) # 获取到列表
dic1 = {"1":3,"5":9,"李文虎":100} print(dic.keys()) # 结果是:高仿列表—— dic_keys(['1','5','李文虎']) # 获取字典中所有的键 for i in dic.keys(): print(i) # 获取字典中所有的值 lst = [] for i in dic: lst.append(dic[i]) print(lst)
print(list(dic.values())) # 获取到列表
dic1 = {"1":3,"5":9,"李文虎":100} # 获取字典中所有的值 print(list(dic.values())) # 结果是[3, 9, 100]
print(list(dic.items())) # 获取到列表
dic1 = {"1":3,"5":9,"李文虎":100} print(dic.items()) # 结果是dict_items([('1', 3), ('5', 9), ('李文虎', 100)]) # 获取字典的键和值 for i in dic.items(): print(i[0],i[1]) dic1 = {"1":3,"5":9,"李文虎":100} for i in dic1.items(): print(i) # 结果是 ('1', 3) ('5', 9) ('李文虎', 100) for k,v in dic1.items(): print(k,v) # 获取每个元素的键和值 # 结果是: 1 3 5 9 李文虎 100
a, b = 10,12 print(a) print(b) # 结果是 # 10 # 12 # 面试题 a = 10 b = 20 a,b = b,a print(a,b) # 结果:20 10 a,b = [1,2] print(a,b) # 结果是 1 2 a,b = (3,4) print(a,b) # 结果是: 1 2 a,b = "23" print(a,b) # 结果是: 2 3 工作之后可能会遇见 a,_,b = (3,4,5) print(a,b) # 等号后边的值和前面的变量名要一一对应 a = 10,12 # 本质就是一个元组 print(a) # 结果是 (10,12) a,b = {"1":"a","2":"b"} # 得到的是键 print(a,b) # 结果是 1 2
通过键一层一层的查找
# dic = {1001:["周杰伦","林俊杰"], # 1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}, # 1003:{"陈冠希":["阿娇","阿萨","张柏芝"]}, # 1004:{"韦小宝":[{"教主夫人":["教主"]}, # {"阿珂":"刺客"}, # {"双儿":"天地会"}, # {"爱心觉罗建宁":"公主"}, # {"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":[ # "唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}] # }}, # {"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]}, # 1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]} # } # print(dic) # print(dic[1004]["韦小宝"][0]["教主夫人"][0]) # print(dic[1005]["常鑫"][-1]) # print(dic[1002]["汪峰"]["前妻2"][-1]) # print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"]) # print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])
如对本文有疑问, 点击进行留言回复!!
自动化部署Ruby on Rails应用(docker + jenkins)
网友评论