久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python dict字典方法完全攻略(全)

 candidacy 2019-07-19
我們知道,,字典的數(shù)據(jù)類型為 dict,我們可使用 dir(dict) 來查看該類包含哪些方法,。在交互式解釋器中輸入 dir(dict) 命令,,將看到如下輸出結(jié)果:

>>> dir(dict)
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

這些方法中,clear(),、fromkeys(),、get() 方法的功能和用法已經(jīng)在前面章節(jié)中講過,這里不再重復(fù)介紹,。下面給大家一一介紹另外的這些方法,。

Python keys()、values() 和 items()方法

這 3 個方法之所以放在一起介紹,,是因為它們都用來獲取字典中的特定數(shù)據(jù),。keys() 方法用于返回字典中的所有鍵,;values() 方法用于返回字典中所有鍵對應(yīng)的值;items() 用于返回字典中所有的鍵值對,。

例如:
  1. a = {'數(shù)學(xué)': 95, '語文': 89, '英語': 90}
  2. print(a.keys())
  3. print(a.values())
  4. print(a.items())
運行結(jié)果為:

dict_keys(['數(shù)學(xué)', '語文', '英語'])
dict_values([95, 89, 90])
dict_items([('數(shù)學(xué)', 95), ('語文', 89), ('英語', 90)])


注意,,在 Python 2.x 中,這三個方法的返回值是列表類型,。但在 Python 3 中,,并不是我們常見的列表和元組類型,因為 Python 3不希望用戶直接操作這幾個方法的返回值,。如果想使用返回的數(shù)據(jù),,有以下 2 種方法:
  1. 使用 list() 函數(shù),將它們返回的數(shù)據(jù)轉(zhuǎn)換成列表,,例如:
    1. a = {'數(shù)學(xué)': 95, '語文': 89, '英語': 90}
    2. b = list(a.keys())
    3. print(b)
    運行結(jié)果為:

    ['數(shù)學(xué)', '語文', '英語']

  2. 也可以利用多重賦值的技巧,,利用循環(huán)結(jié)構(gòu)將鍵或值分別賦給不同的變量,比如說:
    1. a = {'數(shù)學(xué)': 95, '語文': 89, '英語': 90}
    2. for k in a.keys():
    3. print(k,end=' ')
    4. print("\n---------------")
    5. for v in a.values():
    6. print(v,end=' ')
    7. print("\n---------------")
    8. for k,v in a.items():
    9. print("key:",k," value:",v)
    運行結(jié)果為:

    數(shù)學(xué) 語文 英語
    ---------------
    95 89 90
    ---------------
    key: 數(shù)學(xué)  value: 95
    key: 語文  value: 89
    key: 英語  value: 90

    由于目前尚未學(xué)習 for 循環(huán),,初學(xué)者可先跳過此種方法,,等學(xué)會 for 循環(huán)后再回過頭來學(xué)習。

Python copy()方法

copy() 方法用于返回一個具有相同鍵值對的新字典,,例如:
  1. a = {'one': 1, 'two': 2, 'three': [1,2,3]}
  2. b = a.copy()
  3. print(b)
運行結(jié)果為:

{'one': 1, 'two': 2, 'three': [1, 2, 3]}

可以看到,,通過 copy() 方法,就可以將字典 a 的數(shù)據(jù)拷貝給字典 b,。

注意,,copy() 方法所遵循的拷貝原理,既有深拷貝,,也有淺拷貝,。拿拷貝字典 a 為例,copy() 方法只會對最表層的鍵值對進行深拷貝,,也就是說,,它會再申請一塊內(nèi)存用來存放 {'one': 1, 'two': 2, 'three': []};而對于某些列表類型的值來說,,此方法對其做的是淺拷貝,,也就是說,b 中的 [1,2,3] 的值不是自己獨有,,而是和 a 共有,。

例如:
  1. a = {'one': 1, 'two': 2, 'three': [1,2,3]}
  2. b = a.copy()
  3. #向 a 中添加新鍵值對,由于b已經(jīng)提前將 a 所有鍵值對都深拷貝過來,,因此 a 添加新鍵值對,,不會影響 b。
  4. a['four']=100
  5. print(a)
  6. print(b)
  7. #由于 b 和 a 共享[1,2,3](淺拷貝),,因此移除 a 中列表中的元素,,也會影響 b,。
  8. a['three'].remove(1)
  9. print(a)
  10. print(b)
運行結(jié)果為:

{'one': 1, 'two': 2, 'three': [1, 2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [1, 2, 3]}
{'one': 1, 'two': 2, 'three': [2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [2, 3]}

從運行結(jié)果不難看出,對 a 增加新鍵值對,,b 不變,;而修改 a 某鍵值對中列表內(nèi)的元素,b也會相應(yīng)改變,。

Python update()方法

update() 方法可使用一個字典所包含的鍵值對來更新己有的字典,。

在執(zhí)行 update() 方法時,如果被更新的字典中己包含對應(yīng)的鍵值對,,那么原 value 會被覆蓋,;如果被更新的字典中不包含對應(yīng)的鍵值對,則該鍵值對被添加進去,。

例如:
  1. a = {'one': 1, 'two': 2, 'three': 3}
  2. a.update({'one':4.5, 'four': 9.3})
  3. print(a)
運行結(jié)果為:

{'one': 4.5, 'two': 2, 'three': 3, 'four': 9.3}

從上面的執(zhí)行過程可以看出,,由于被更新的 dict 中已包含 key 為“one”的鍵值對,因此更新時該鍵值對的 value 將被改寫,;但如果被更新的 dict 中不包含 key 為“four”的鍵值對,,那么更新時就會為原字典增加一個鍵值對。

Python pop方法

pop() 方法用于獲取指定 key 對應(yīng)的 value,,并刪除這個鍵值對,。

如下方法示范了 pop() 方法的用法:
  1. a = {'one': 1, 'two': 2, 'three': 3}
  2. print(a.pop('one'))
  3. print(a)
運行結(jié)果為:

1
{'two': 2, 'three': 3}

此程序中,第 2 行代碼將會獲取“one”對應(yīng)的值 1,,并刪除該鍵值對,。

Python popitem()方法

popitem() 方法用于隨機彈出字典中的一個鍵值對。

注意,,此處的隨機其實是假的,,它和 list.pop() 方法一樣,也是彈出字典中最后一個鍵值對,。但由于字典存儲鍵值對的順序是不可知的,,因此 popitem() 方法總是彈出底層存儲的最后一個鍵值對。

如下代碼示范了 popitem() 方法的用法:
  1. a = {'one': 1, 'two': 2, 'three': 3}
  2. print(a)
  3. # 彈出字典底層存儲的最后一個鍵值對
  4. print(a.popitem())
  5. print(a)
運行結(jié)果為:

{'one': 1, 'two': 2, 'three': 3}
('three', 3)
{'one': 1, 'two': 2}

實際上,,由于 popitem 彈出的是一個元組,,因此我們也可以通過序列解包的方式,用兩個變量分別接收 key 和 value,。

例如如下代碼:
  1. a = {'one': 1, 'two': 2, 'three': 3}
  2. # 將彈出項的key賦值給k、value賦值給v
  3. k, v = a.popitem()
  4. print(k, v)
運行結(jié)果為:

three 3

Python setdefault()方法

setdefault() 方法也用于根據(jù) key 來獲取對應(yīng) value 的值,。但該方法有一個額外的功能,,即當程序要獲取的 key 在字典中不存在時,該方法會先為這個不存在的 key 設(shè)置一個默認的 value,,然后再返回該 key 對應(yīng)的 value,。

也就是說,,setdefault() 方法總能返回指定 key 對應(yīng)的 value;如果該鍵值對存在,,則直接返回該 key 對應(yīng)的 value,;如果該鍵值對不存在,則先為該 key 設(shè)置默認的 value,,然后再返回該 key 對應(yīng)的 value,。

如下代碼示范了 setdefault() 方法的用法:
  1. a = {'one': 1, 'two': 2, 'three': 3}
  2. # 設(shè)置默認值,該key在dict中不存在,,新增鍵值對
  3. print(a.setdefault('four', 9.2))
  4. print(a)
  5. # 設(shè)置默認值,,該key在dict中存在,不會修改dict內(nèi)容
  6. print(a.setdefault('one', 3.4))
  7. print(a)
運行結(jié)果為:

9.2
{'one': 1, 'two': 2, 'three': 3, 'four': 9.2}
1
{'one': 1, 'two': 2, 'three': 3, 'four': 9.2}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多