日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python字典笔记

發布時間:2023/12/20 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字典笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字典

字典? ?無序可變

與列表、元組不同,它們是存儲單個值,而字典存儲的key:value對,它存儲的數據總是成對的

key被稱為鍵,鍵不可重復且不可變(列表、集合、字典是可變的)

value被稱為值,值可以是任意類型的數據且可以重復

字典的創建

>>> dict1={}

>>> dict2=dict()

>>> contacts_dict={"小王":"13529395634","小李":"18656489656","小張":"15523632311","小朱":"13945667898"}

想知道字典里有多少數據,可用len()來獲取

>>> print(len(contacts_dict))

4

返回的是鍵值對的對數

想要知道一個key是否存在,使用in或not in成員操作符

>>> print('小王' in contacts_dict)

True

>>> print('15523632311' in contacts_dict)

False

Value值不可以是in來判斷

新增鍵值對和修改value

新增小麗的電話15123632776

>>> contacts_dict["小麗"]="15123632776"

如果又要添加另一個小王,電話為15936665645

>>> contacts_dict["小王"]="15936665645"

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898', '小麗': '15123632776'}

發現并沒有增加一個小王,而是之前小王的電話被修改了

因為字典的key值是不允許重復的

所以對于直接key值等于這種操作,如果key不存在,那么就會增加新的鍵值對,如果已存在,就直接修改value

訪問字典里的值

如果想要訪問字典里的值,就必須提供key,對于字典的任何操作都必須經過key值

比如想知道小李的電話號碼

print(contacts_dict["小李"])

18656489656

如果輸錯了,輸成了曉麗,就會報錯

>>> print(contacts_dict["曉麗"])

Traceback (most recent call last):

??File "<pyshell#13>", line 1, in <module>

????print(contacts_dict["曉麗"])

KeyError: '曉麗'

刪除字典里的鍵值對

想要刪除某值,就必須獲得該值的key

想要刪除小麗的電話

>>>?del contacts_dict["小麗"]

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898'}

還可以使用pop方法,有返回值

>>> contacts_dict.pop("小麗")

'15123632776'

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898'}

>>>

字典的嵌套

字典里面可以儲存字典

小宋有兩個號碼,一個手機號18956642553,一個座機號28796665

>>> contacts_dict["小宋"]={"手機":"18956642553","座機":"28796665"}

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898', '小宋': {'手機': '18956642553', '座機': '28796665'}}

現在想輸出小宋的座機號碼是多少

>>> print(contacts_dict["小宋"]["座機"])

28796665

字典的常用方法

Clear 刪除字典內的所有元素

>>> dic={"a":"python"}

>>> dic.clear()

>>> print(dic)

{}

重新賦空字典

>>> dic={"a":"python"}

>>> dic={}

>>> print(dic)

{}

>>> dic1={"a":"python"}

>>> print(id(dic1))

2234972420480

>>> dic1.clear()

>>> print(id(dic1))

2234972420480

Clear清空一個字典,該字典在內存中的地址并沒有變化

>>> dic1={"a":"python"}

>>> print(id(dic1))

2234972420672

>>> dic1={}

>>> print(id(dic1))

2234937787712

直接將空字典賦值,變量dic1重新指向了一個新字典,有了新地址,原來的字典被垃圾回收機制給回收了

所以clear是清空字典,而將空字典賦值給變量,并不是清空,只是修改了變量的引用而已

Fromkeys(序列(key),value(默認為none)) ?以指定的key值創建一個新字典

>>> score_dict=dict.fromkeys(["小李","小王"],100)

>>> print(score_dict)

{'小李': 100, '小王': 100}

錯誤示范1

>>> score_dict=dict.fromkeys(["小李","小王"],[100,80])

>>> print(score_dict)

{'小李': [100, 80], '小王': [100, 80]}

錯誤示范2

>>> score_dict=dict.fromkeys(["小李","小王"],100,80)

Traceback (most recent call last):

??File "<pyshell#44>", line 1, in <module>

????score_dict=dict.fromkeys(["小李","小王"],100,80)

TypeError: fromkeys expected at most 2 arguments, got 3

錯誤示范3

>>> score_dict=dict.fromkeys("小夏",100)

>>> print(score_dict)

{'小': 100, '夏': 100}

fromkeys方法接受兩個參數

第一個參數是序列,可以是列表,也可以是元組,方法將以這個序列里的元素做key,生成新的字典。

value由第二個參數來決定,我在代碼里傳入參數90,所有key所對應的value就都是90,如果不傳這個參數,默認value為None

get(key,default(默認為none))獲取key值對應的value,如果key值不存在則返回dafault值,默認為none

>>> contacts_dict.get("小霞","沒有這個key")

'沒有這個key'

>>> contacts_dict.get("小李","沒有這個key")

'18656489656'

items() 成對返回所有的key和value,通常用于遍歷

>>> for key,value in contacts_dict.items():

print(key,value)

小王 15936665645

小李 18656489656

小張 15523632311

小朱 13945667898

小宋 {'手機': '18956642553', '座機': '28796665'}

Keys() 返回字典里所有的key

>>> keys=contacts_dict.keys()

>>> for key in keys:

print(key)

小王

小李

小張

小朱

小宋

values() 返回字典里所有value

>>> values=contacts_dict.values()

>>> for value in values:

print(value)

15936665645

18656489656

15523632311

13945667898

{'手機': '18956642553', '座機': '28796665'}

Items ,keys,values三種方法返回的都是一個可迭代對象可以用for循環遍歷輸出

Setdefault(key,value) 向字典里添加新的元素,如果key值存在就不做任何操作,如不存在,就添加新的值,會返回key所對應的value值

>>> contacts_dict.setdefault("小王","15636455568")

'15936665645'

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898', '小宋': {'手機': '18956642553', '座機': '28796665'}}

>>> contacts_dict.setdefault("小霞","15636455568")

'15636455568'

>>> print(contacts_dict)

{'小王': '15936665645', '小李': '18656489656', '小張': '15523632311', '小朱': '13945667898', '小宋': {'手機': '18956642553', '座機': '28796665'}, '小霞': '15636455568'}

Update更新字典

字典1.Update(字典2),將字典2的內容更新到字典1當中

>>> dict1={1:"jerry",2:"tom"}

>>> dict2={2:"jack",3:"nancy"}

>>> dict1.update(dict2)

>>> print(dict1)

{1: 'jerry', 2: 'jack', 3: 'nancy'}

如果出現相同的key,則這個key的值取決于dict2的值

pop 刪除鍵值對

不論是使用del 還是使用pop方法刪除字典里的鍵值對,如果key不存在都會引發KeyError異常,pop與del的不同之處在于,pop會返回所刪除鍵值對的value

>>> del dict1[1]

>>> dict1.pop(2)

'jack'

>>> print(dict1)

{3: 'nancy'}

注意事項:

  • 直接用dict[key]取值有風險,如果key'值不存在則會報異常,為避免這種異常,通常有兩種方法
  • 第一種,判斷key值是否存在

    第二種用get(key)方法

  • 不要用布爾類型做key
  • 因為true==1,flase==0,而字典里如果有key為1 或為0時,再使用bool值做key,值會被覆蓋,因為key值不能重復

    總結

    以上是生活随笔為你收集整理的python字典笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。