1. 程式人生 > 實用技巧 >python中字典詳解

python中字典詳解

字典特點

字典是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"])