字典特點
字典是python中最常用的數據類型,主要的特點如下:
1.字典的關鍵字:dict 字典一般是用"{}"花括號括起來的
2.字典是無序的數據類型
3.字典的可以存儲任意數據類型(例如:字典,列表,元組,數字,字符串,集合,布爾值)
4.字典的元素可以更改,但是如果包含的數據類型是元組,則元組里面的數據是不能進行更改,只能整體替換
5.字典的元素是按照key-value鍵值對的形式存在的,key和value之間是用 ":" 冒號隔開,每個鍵值對之間是用 ,逗號隔開,整個字典是用{}包括起來
6.key的值是唯一且不可變的數據類型,例如:元組,數字,字符串,布爾值,浮點數 如果key值存在重復,那最后一個鍵值對會替換前面的
7.字典的取值,是根據key進行取值,因為字典是無序的數據類型,所以不能使用索引進行取值,只有列表,元組才可以使用索引取值(有索引,就代表是有序的)
字典的常用操作
1.定義一個空的字典方法
dict={}
2.創建一個字典
dict={"name":"小張",1:"你好",0.2:[1,2,3],False:"學習",(2,3,4):9.8} ------->(不同類型的數據,key是唯一且不可變類型,value可以是任意類型的)
3.字典的取值
取值單個元素:字典的取值是根據key來取的,例如:dict["name"], 輸出結果為:小張 取值方法:字典名[key]
for循環取值:還可以通過for循環去進行元素遍歷取值 方法如下:
for value in dict.valuse(): print(value)
4.字典的長度
如果想求字典的長度,可以使用len()內置函數 使用方法: len(dict)
字典的常用方法:
新增元素:dict[new_key]=new_value
刪除元素:dict.pop[key_value]
修改元素的值:dict[old_key]=new_value
**修改元素和新增元素的區別,修改是將舊的key值,賦予新的value,新增是創建一個新的key值,賦予新的value
字典常用的內置函數
1.len() 使用方法:len(dict) 計算字典的元素個數,也就是鍵的總數
2.str() 使用方法:str(dict) 輸出字典可打印的字符串格式,也就是將字典轉換為字符串類型
3.type() 使用方法:type(dict) 返回變量的類型,如果是字典格式的,那返回的數據類型為dict
eg:
例如:
1 aa={True:"nihao",False:"LIHAI"} 2 print(aa[True],aa[False]) 3 print(type(str(aa)))
4 print(len(aa))
輸出結果:
nihao LIHAI #打印的為字典的單個值
<class 'str'> #輸出的為輸入的變量類型
2 #輸出的為字典的長度
字典常用的內置方法
1.dict.clear() 刪除字典內所有元素
2.dict.pop(key,default) 刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
3.dict.popitem() 隨機刪除字典中的某個鍵值對
4.dict.get(key,default=None) 返回指定鍵的值,如果改值不在字典中,默認返回None
(參數解釋:
- key -- 字典中要查找的鍵。
- default -- 如果指定鍵的值不存在時,返回該默認值。
)
5.dict.keys() 以列表返回字典中的所有key值 輸出格式:將所有的key值存放在一個列表中,最后以元組輸出
6.dict.values() 以列表返回字典中的所有value值 輸出格式,將所有的value值存放在一個列表中,最后以元組輸出
7.dict.items() 以列表返回可遍歷的(鍵,值)元組數組 輸出格式,將每一對key和value組成一個元組,再將這些數據存放在列表中,最后以元組輸出
eg:
1 實例: 2 data={"name":"小張",1:"你好",0.2:[1,2,3],False:"學習",(2,3,4):9.8} 3 print(data.items()) 4 print(data.values()) 5 print(data.keys()) 6 print(data.get((2,3,4))) 7 data.pop(0.2) 8 print(data) 9 data.popitem() 10 print(data) 11 data.clear() 12 print(data)
14 輸出結果: 15 dict_items([('name', '小張'), (1, '你好'), (0.2, [1, 2, 3]), (False, '學習'), ((2, 3, 4), 9.8)]) 16 dict_values(['小張', '你好', [1, 2, 3], '學習', 9.8]) 17 dict_keys(['name', 1, 0.2, False, (2, 3, 4)]) 18 9.8 19 {'name': '小張', 1: '你好', False: '學習', (2, 3, 4): 9.8} 20 {'name': '小張', 1: '你好', False: '學習'} 21 {}
字典中幾種常用的取值方式:
from jsonpath import jsonpath #取出小藍 user_data={"user":"小紅","name":{"年齡":18,"sex":{"hh":"aa","name":"小藍"}}} #使用jsonpath取值 e=jsonpath(user_data,"$..sex")[0]["name"] print(e) #使用一層一層取值 e1=user_data["name"]["sex"]["name"] print(e1) #用for循環取值 for value in user_data.values(): if value=={'年齡': 18, 'sex': {'hh': 'aa', 'name': '小藍'}}: print(value["sex"]["name"]) #使用get的方式取值 e2=user_data.get("name")["sex"]["name"] print(e2) #取出字典所有的keys和values,items(),以列表返回可遍歷的(鍵,值)元組數組,然后通過索引進行取值 e3=user_data.items() print(type(e3)) print(list(e3)[1][1]["sex"]['name']) #取出所有的value值,然后取出對應的值 e4=user_data.values() print(list(e4)[1]["sex"]["name"])