Python3基本數據類型之dict


dict

即字典,是另一種可變容器類模型,可存儲任意類型對象。

key:value形式,取值速度快

key必須是不可變類型且唯一,所以key用字符串嗎,數字,元組

(布爾值也可以作為key,不過可能與0或者1重復,key重復時只保留后一個顯示,把前面的給覆蓋掉),value可以是任意類型,可以不唯一,不能是空字符

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:

1 d1={"name":"garrett","age":123}

支持for循環

字典可變,但有序(3.6版本開始的),不能索引和切片,但是就可以通過key來取值,或者用get()方法用key取值(get()可定義無查找對象時的返回值)

字典支持刪除

 1 d3={
 2     11:12,
 3     "12":123,
 4     True:124,
 5     #[1,2]:12,#list不能當key
 6     (12,3):12,#元組不能修改,可以
 7     #{12,3}:123#字典可變,不能當key
 8     123:{
 9         "a":"A",
10         "b":"B",
11         "c":(11,22)
12     }
13 }
14 # print(d3[3])#不能用索引取值
15 print(d3["12"])#要用key取值
16 print(d3[11])
17 print(d3[123]["c"][1])#深層取值
18 
19 del d3[11]#可以按照key來刪除鍵值對
20 print(d3)
21 
22 del d3[123]["c"]#深層刪除
23 print(d3)

結果

1 123
2 12
3 22
4 {'12': 123, True: 124, (12, 3): 12, 123: {'a': 'A', 'b': 'B', 'c': (11, 22)}}
5 {'12': 123, True: 124, (12, 3): 12, 123: {'a': 'A', 'b': 'B'}}

 

 1 d3={
 2     11:12,
 3     "12":123,
 4     True:124,
 5     (12,3):12,
 6     123:{
 7         "a":"A",
 8         "b":"B",
 9         "c":(11,22)
10     }
11 }
12 for item in d3:#默認循環只有key輸出
13     print(item)

結果

1 11
2 12
3 True
4 (12, 3)
5 123

用內置方法輸出key和value

 1 d3={
 2     11:12,
 3     "12":123,
 4     True:124,
 5     (12,3):12,
 6     123:{
 7         "a":"A",
 8         "b":"B",
 9         "c":(11,22)
10     }
11 }
12 print(d3.keys())
13 print(d3.values())
14 for item1 in d3.values():
15     print(item1)
16 for item2 in d3.keys():
17     print(item2)

結果

 1 dict_keys([11, '12', True, (12, 3), 123])
 2 dict_values([12, 123, 124, 12, {'a': 'A', 'b': 'B', 'c': (11, 22)}])
 3 12
 4 123
 5 124
 6 12
 7 {'a': 'A', 'b': 'B', 'c': (11, 22)}
 8 11
 9 12
10 True
11 (12, 3)
12 123

同時輸出key和value

 1 d3={
 2     11:12,
 3     "12":123,
 4     True:124,
 5     (12,3):12,
 6     123:{
 7         "a":"A",
 8         "b":"B",
 9         "c":(11,22)
10     }
11 }
12 #用內置方法同時輸出key和values
13 print(d3.items())
14 for k,v in d3.items():#
15     print(k,v)

結果

1 dict_items([(11, 12), ('12', 123), (True, 124), ((12, 3), 12), (123, {'a': 'A', 'b': 'B', 'c': (11, 22)})])
2 11 12
3 12 123
4 True 124
5 (12, 3) 12
6 123 {'a': 'A', 'b': 'B', 'c': (11, 22)}

修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對。如下實例:

1 dict1 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
2 dict1['Age'] = 8  # 更新 Age
3 dict1['School'] = "AWD"  # 添加信息
4 
5 print("dict1['Age']: ", dict1['Age'])
6 print("dict1['School']: ", dict1['School'])

結果

1 dict1['Age']:  8
2 dict1['School']:  AWD

 可以根據key的值是否為可修改類型修改

1 n1=["a",[1,2,{"k1":"v1","k2":["age","name"],"k3":(1,2,3)}]]
2 n1[1][2]["k2"].append("SD")
3 print(n1)

結果

1 ['a', [1, 2, {'k1': 'v1', 'k2': ['age', 'name', 'SD'], 'k3': (1, 2, 3)}]]

字典要掌握的操作:

1.按key存取值

2.長度len

3.成員運算in和not in

4.刪除

5.keys()和values()以及items()方法

6.循環

7.update()和get()

 1 d3={
 2     11:12,
 3     "12":123,
 4     True:124,
 5     (12,3):12,
 6     123:{
 7         "a":"A",
 8         "b":"B",
 9         "c":(11,22)
10     }
11 }
12 print(len(d3))
13 print("a" in d3)
14 print("A" in d3)

結果

1 1 False
2 2 False

 pop()

語法:d.pop(key[,default])

參數:key-----要刪除的鍵值對的key

default-----沒有這個key,舊返回默認值,必須添加,否則報錯

返回值:返回被刪除的值,沒有就報錯或返回默認值

復制代碼
d2={
    "a":"A",
    "b":"B",
    "c":"C",
}
#pop可以根據key刪除鍵值對,並且拿到這個刪除的value,不存在時,可以根據第二個參數來自定義返回的值
n0=d2.pop("a")#參數不能為空,不存在的key時,報錯
print(d2,n0)
n1=d2.pop("f",100)
print(d2,n1)
復制代碼

 結果

1 {'b': 'B', 'c': 'C'} A
2 {'b': 'B', 'c': 'C'} 100

update()

語法:d1.update(d2)

參數:d2-----添加到d1字典里的字典

描述:沒有返回值,把d2的key:value對更新到d1字典里,如果鍵值對有重復,用d2的覆蓋掉d1的。

復制代碼
 1 d4={
 2     "a":"A",
 3     "b":"B",
 4     "c":"C",
 5 }
 6 #update
 7 d4.update({"k1":12,"a":"AA"})#更新,沒有的key加上,存在的就更新value
 8 print(d4)
 9 #update另一種形式
10 d4.update(k2=123,k3=233,a="ABC")#這樣寫,key要符合變量名起名要求
11 print(d4)
復制代碼

 結果

1 {'a': 'AA', 'b': 'B', 'c': 'C', 'k1': 12}
2 {'a': 'ABC', 'b': 'B', 'c': 'C', 'k1': 12, 'k2': 123, 'k3': 233}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM