今日內(nèi)容(dict)

1.基本格式

2.獨(dú)有方法

3.公共

4.強(qiáng)制轉(zhuǎn)換

1.基本格式

  • 字典(可變類型,3.6之后是有序)
  • 幫助用戶去表示一個(gè)事物的信息(事物是有多個(gè)屬性)
  • 鍵值不能為集合,列表,字典等不可hash類型
data={鍵:值,鍵:值}
info={"name":"Gao","age":18,"hobby":"music"}#鍵值對(duì)
info['name']
info['age']

1.獨(dú)有方法

1.keys()
獲取字典中所有的鍵 name age hobby 
#列表 / 字典  內(nèi)部可以修改刪除===>不可以哈希
====>
#鍵值創(chuàng)建后,就不能被修改  ===>列表 / 字典 不能當(dāng)做鍵值   

info={"name":"Gao","age":18,"hobby":"music"}#鍵值對(duì)
print(info.keys())
print(type(info.keys()))
#dict_keys(['name', 'age', 'hobby'])
#<class 'dict_keys'>
#打印出類似列表的一組key值

2.values()

info={"k1":"v1","k2":"v2"}
print(info.values())
print(type(info.values()))
#dict_values(['v1', 'v2'])
#<class 'dict_values'>
#打印出類似列表的一組value值

3.items()
得到的是多個(gè)元祖
#獲取字典中所有的鍵值對(duì)
for v1,v2 in info.items():
		print(v1,v2)
#('name', 'Gao')
#('age', 18)
#('hobby', 'music')

info={"name":"Gao","age":18,"hobby":"music"}#鍵值對(duì)
print(info.items())
#dict_items([('name', 'Gao'), ('age', 18), ('hobby', 'music')])


4.get(鍵)
  • 取對(duì)應(yīng)key的value值

  • get相比于index 會(huì)自行判斷不會(huì)報(bào)錯(cuò)

u1=["alex",'123',11]
print(u1[123])
#報(bào)錯(cuò)  超出范圍

info={"k1":"v1","k2":"v2"}
print(info['k111'])
#報(bào)錯(cuò)
print(info.get("k111"))#None 空
#None 表示空類型

print(info.get("k111",666)) #如果有值則返回666
#666
5.pop("key")
info={"k1":"v1","k2":"v2"}
result=info.pop('k2')#V2
print(result,info)
#v2 {"k1":"v1"}
#del info['k1']
6.update():更新
#沒(méi)有就添加,有就更新
info={"k1":"v1","k2":"v2"}
info.update("k3":"v3","k4":"v4")
print(info)
#{"k3":"v3","k4":"v4"}

2.公共方法

1.len()
2.index

? 索引值就是鍵值

3.切片/步長(zhǎng):[沒(méi)有]

因?yàn)樽值涫菬o(wú)序的

4.for:
for key1 in info.keys():
     print(keys)
for v1 in info.keys():
     print(v1)
for k,v in info.items():
     print(k,v)
for val in info:
   #   val==key
   #for 循環(huán)默認(rèn)輸出的是鍵值
5.修改(存在就修改,不存在,就添加)
#1.改值
info['age']=19
print(info)

#2.改鍵
#刪除后再增加
del info['name']
info['XXXX']="x1"
print(info)
6.刪除del
del info['name']
print(info)

3.強(qiáng)制轉(zhuǎn)換dict()

4.練習(xí)

#1.用戶輸入鍵,輸出對(duì)應(yīng)的鍵值
# info={"name":"Gao","age":18,"hobby":"music"}
#鍵值對(duì)
# #print(info.items())
# for k1,v1 in info.items():
#     print(k1,v1)
# val=input("請(qǐng)用戶輸入:")
# print(info[val])

#2.用戶輸入鍵key后  輸出value  當(dāng)用戶輸入"n"時(shí)候結(jié)束
# info={}
# while True:
#     k=input("請(qǐng)輸入鍵值:")
#     if k=='n':
#         break
#     v=input("請(qǐng)輸入value:")
#     info[k]=v
# print(info)

#3.將mess內(nèi)容放到字典中以info={"k1":"v1","k2":"v2","k3":"v3"}形式輸出
mess="k1|v1,k2|v2,k3|v3"
mess=mess.split(",")
info={}
for ele in mess:
    #print(ele)
    k1,v1=ele.split('|')
    info[k1]=v1
print(info)


#9.創(chuàng)造一個(gè)用戶列表 直到用戶輸入N結(jié)束,然后讓用戶輸入用戶名和密碼登錄,輸入

# user_list=[]
#
# while True:
#     u=input("請(qǐng)輸入用戶名:")
#     if u.upper()=="N":
#         break
#     p=input("請(qǐng)輸入密碼:")
#     info={}
#     info['name']=u
#     info["password"]=p
#     user_list.append(info)
#
# print("請(qǐng)登錄:")
# count=0
# index=0
# flag=1
# while True:
#     name1=input("請(qǐng)輸入用戶名:")
#     pass1=input("請(qǐng)輸入密碼:")
#
#     for ele in user_list:
#        if ele["name"]==name1 and ele["password"]==pass1:
#           flag=0
#           print("登錄成功")
#           break
#        else:
#             index += 1
#             if index > len(user_list):
#                 count+=1
#                 print("輸入錯(cuò)誤,請(qǐng)重新輸入:")
#                 break
#             else:
#                 print("繼續(xù)查找")
#                 continue
#     if count > 3 or flag==0:
#         break


5.總結(jié)