python中 字典類型內置方法


python中 字典類型內置方法

一、字典(dict)

1·、 存多個值,但是每一個值都有一個key與之對應。列如存在值有姓名:jiayi、年齡:18、身高:173

2、定義方式

​ 在{}內用逗號分隔多個元素,每個元素都是key:value的形式,value可以是任意數據類型,key通常是字符串類型,但是key必須為不可變類型。

age = {'姓名':'王文彬','性別':'男','名族':'漢'}    #直接定義一個列表
print(age)    
print(type(age))    #

{'姓名': '王文彬', '性別': '男', '名族': '漢'}
<class 'dict'>

二、內置方法

1.按key存取、修改值

dic ={'name':'jiayi','age':20,'height':173}
print(dic['name'])   #可取
dic['age'] = 18   #可指定key修改對應的值
print(dic)

jiayi
{'name': 'jiayi', 'age': 18, 'height': 173}

2.長度(len)(有幾組就輸出數字幾)

dic ={'name':'jiayi','age':20,'height':173}
print(len(dic))

3.成員運算符(in\not in)

dic ={'name':'wangwenbin','age':20,'height':173}
print('name'in dic)
print('age' not in dic)

4.for 循環

dic是無序的,但是python3采用了底層優化算法,所以看起來是有序的

dic ={'name':'wenbin','age':20,'height':173}
for i in dic.items():   #items是返回兩個值(key和values)可以換成keys(),values()
    print(i)

items是返回兩個值(key和values)可以換成

所有方法后面都有() 所有的屬性都是點出來的

5.刪除:del /pop()/popitem

(1)del
dic ={'name':'jiayi','age':20,'height':173}
del dic['name']   #刪除[key]所對應的key和value
print(dic)
print(dic.get('name'))     #打印字典里key為name的值,用的方法是 .get。如果沒有這個值返回值默認為'Nnne'
print(dic.get('name',2222))   #也可以指定輸出,這里輸出結果為222

{'age': 20, 'height': 173}
None
2222

(2)pop()
dic ={'name':'jiayi','age':20,'height':173}
dic.pop('name')   #指定元素刪除
print(dic.pop('age'))    #刪除並且打印刪除的這個元素
print(dic.get('age'))    #在字典中取出 key為(age)的值。不在的話返回 None 
print(dic)

20
None
{'height': 173}

(3)popitem
dic ={'name':'jiayi','age':20,'height':173}
print(dic.popitem())    #Python 字典 popitem() 方法返回並刪除字典中的最后一對鍵和值。
print(dic)

('height', 173)
{'name': 'jiayi', 'age': 20}

6.鍵keys()、值values()、鍵值對items()

dic ={'name':'jiayi','age':20,'height':173}
print(dic.keys())
print(dic.values())
print(dic.items())

dict_keys(['name', 'age', 'height'])
dict_values(['jiayi', 20, 173])
dict_items([('name', 'jiayi'), ('age', 20), ('height', 173)])

需要掌握的

1.get() (指定取出字典里key對應的那個value.如果字典里沒有的話返回為None)
dic ={'name':'jiayi','age':20,'height':173}
print(dic.get('name'))   #如果有就返回真的值
print(dic)
print(dic.get('hobby'))
print(dic.get('hobby','nick'))  #如果有就返回真的值,如果沒有,默認返回None。也可以設置返回的值

jiayi
{'name': 'jiayi', 'age': 20, 'height': 173}
None
nick

2.update() (字典 update() 函數把字典參數 dict2 的 key/value(鍵/值) 對更新到字典 dict 里。)

語法

dict.update(dict2)
dic ={'name':'jiayi','age':20,'height':173}
dic2 = {'hobby':'run'}
dic.update(dic2)
print(dic)

{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}

3.fromkeys() ( fromkeys() 函數用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。)

語法

dict.fromkeys(seq[, value])
dic=dict.fromkeys(['name','age','height'],None)   
#fromkeys由dict,key來自於容器,值來自於后面定義的value
print(f"dic:{dic}")

{'name': None, 'age': None, 'height': None}

4.setdefault() (setdefault() 方法和 get()方法 類似, 如果鍵不已經存在於字典中,將會添加鍵並將值設為默認值。也就是會把不在的這個給添加上)

語法

dict.setdefault(key, default=None)
# 有指定key不會改變值;無指定key則改變值
dic ={'name':'jiayi','age':20,'height':173}
print(dic.setdefault('name'))
print(dic)
print(dic.setdefault('hobby','run'))
print(dic)

jiayi
{'name': 'jiayi', 'age': 20, 'height': 173}
run
{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}

三、有一個值還是多個值

多個值

四、有序(索引)or無序(索引)

無序

五、可變or不可變

可變

dic ={'name':'jiayi','age':20,'height':173}
print(id(dic))
dic['name'] = 'yanjiayi'
print(id(dic))
-------------------------------------------------------------
2213073478280
d2213073478280


免責聲明!

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



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