近期学习(3)

一、字典dict

1 . 定义:用于数据存储,存储大量数据,字典比列表要快,将数据和数据之间进行关联

字典是无序的,可变的数据类型

用列表实现成绩

lst1=["常鑫","李文虎","张宇"]#姓名
lst2 = [10,80,100] 分数
print(lst[0],lst[1])

定义一个字典:

dic = {"常鑫"#键:10#值,"李文虎":80,"张宇":100}

字典中逗号分隔为一个元素

其他语言叫做键值对,python中叫做字典

字典的键:

  • 必须是可哈希的——不可变数据类型——避免哈希冲突使用开放寻址法
  • 不可哈希的——可变数据类型
  • 要求唯一,如果有重复,后面的将覆盖前面的

字典的值:

  • 可以任意

增:

dic = {"常鑫":[1,2,3]}
dic["李文虎"] = 89 暴力添加
dic. setdefault("李文虎",100)
#李文虎这个键去字典进行查询,如果不存在执行添加,如果存在就不添加

删除:

del dic["常鑫"]
print(dic)

pop:通过字典的键进行删除键值对

print(dic.pop("键”)) #返回的是被删除的值
print(dic)

clear

dic.clear() #清空
print(dic)

改:

dic["常鑫"] = "123" #字典中没有某个键对的时候就是添加,当键在字典中存在的时候就是修改

.update()

dicl.update(dic)
print(dic1)

dicl = {"1":3,"5":9,"李文虎":100}
for i in dicl #循环是获取字典对应的键
	print(i)
    
print(dic.get("cx"))#通过键获取值,如果键不存在与字典中返回None
print(dic["cx"])#通过键获取值,如果键不在字典中报错

其他操作

获取所有的键和值

dicl = {"1":3,"5":9,"李文虎":100}
for i in dicl:
    print(i,dicl.get(i)) #获取所有键和值

for i in dic.items():
 print(i[0],i[1])

获取所有的键

print(dicl.keys()) #高仿列表——支持for循环不支持索引
for i in dic1.keys()#获取字典中所有的键
	print(i)
list(dicl.keys()) #转换为真列表

获取所有的值

print(list(dicl.values()))  #获取字典中所有的值并转为列表

lst = []
for i in dic1:
lst.append(dic1[i]) 

解构:

a,b = 10,12
print(a)
print(b)

a = 10
b = 20
a,b = b,a
print(a)
print(b) #a与b进行交换

a,b = [1,2]
print(a,b)  #将列表中的元素解构出来

a,b = (3,4)
print(a,b)  #将元组中的值解构出来

a,_,b = (3,4,5)
print(a,b)   # 等号后边的值和前面的变量名要一一对应

a = 10,12  # 本质就是一个元组
print(a)

#a,b = {"1":"a","2":"b"}
#print(a,b)    # 打印字典中的键

for k,v in dic1.items():
	print(k,v)    # 获取每个元素的键和值

for i in dic1.items():
	print(i)

字典的嵌套

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])
原文地址:https://www.cnblogs.com/Kiwi-456/p/11166444.html