今日內(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
浙公網(wǎng)安備 33010602011771號(hào)