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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python中字典的value可以为任意对象_Python学习入门(13)—字典

發(fā)布時間:2025/4/16 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中字典的value可以为任意对象_Python学习入门(13)—字典 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(本號正在連續(xù)推出以Python官網(wǎng)文檔為主線的系統(tǒng)學(xué)習(xí)Python的系列文章或視頻,感興趣的朋友們歡迎搜索關(guān)注。在這里學(xué)習(xí)Python事半功倍!本文及后續(xù)文章如無特別聲明均以Windows平臺作為演示平臺,Python版本為:3.8.1)


在Python中,映射類型用于表示可哈希的值集映射到任意對象集的映射關(guān)系,其中可哈希的值稱作鍵,鍵映射到的對象稱為值。映射類型是可變的,也就是可以刪除特定鍵值之間的映射關(guān)系,也可以將特定鍵映射到別的對象。目前,在Python中只內(nèi)置了一種映射類型:字典。除去那些不能哈希的類型的值(例如列表,字典和其他通過值而不是id比較的可變類型的值),其它值幾乎都可用作字典的鍵。同一字典內(nèi)的鍵是唯一的,不能重復(fù)的。用于鍵的數(shù)字類型遵循數(shù)字比較的一般規(guī)則:如果兩個數(shù)字鍵比較相等(比如1和1.0),那么它們被視為同一個鍵。(不過請注意,由于計算機將浮點數(shù)存儲為近似值,因此將它們用作字典鍵通常是不明智的。)

字典類型對象的構(gòu)造

字典對象可以通過將逗號分隔的鍵值對放置到{}內(nèi)或使用dict()構(gòu)造。其中dict()有三種形式:

  • dict(**kwarg) 所有實參都是以關(guān)鍵字參數(shù)的形式傳遞。
  • dict(mapping, **kwarg) 接受第一個為映射類型的參數(shù),其余(若有)都以關(guān)鍵字參數(shù)的形式傳遞。
  • dict(iterable, **kwarg) 接受一個可迭代類型的位置參數(shù),此參數(shù)的元素必須是鍵值對,其余(若有)都以關(guān)鍵字參數(shù)的形式傳遞。

字典對象是按如下構(gòu)造的:

  • 如果沒有提供位置參數(shù),則構(gòu)造空字典對象。
  • 如果提供的位置參數(shù)是映射類型的,則創(chuàng)建包含與該參數(shù)所包含的鍵值對相同的字典。
  • 如果提供的位置參數(shù)是可迭代類型的,則構(gòu)造包含以該參數(shù)中每個元素的第一個對象為鍵第二個對象為值的鍵值對的字典,如果鍵重復(fù)出現(xiàn)則最后出現(xiàn)的鍵對應(yīng)的值為此鍵的值。這種情況下要求該參數(shù)中的元素本身必須是包含兩個對象的可迭代類型的對象,并且元素的第一個對象必須是可哈希的。如果不滿足此要求會報TypeError。
  • 如果提供了關(guān)鍵字參數(shù),則關(guān)鍵字參數(shù)表示的鍵值對加入到新創(chuàng)建的字典中,如果鍵已存在則用現(xiàn)在的值更新之前的值。
  • 字典構(gòu)造示例如下:

    【示例】 字典對象的創(chuàng)建

    字典類型支持的操作

    • list(d) 返回由字典d中所有鍵組成的列表。
    • len(d) 返回字典d中鍵值對的個數(shù)。
    • d[key] 返回字典d中對應(yīng)于鍵key的值。如果鍵不存在則報KeyError。如果定義dict的子類時定義了一個方法__missing__(),假設(shè)dSub為該子類的對象,且key在給對象中不存在,那么dSub[key]操作就會調(diào)用__missing__(),并將鍵key作為參數(shù)。然后該操作返回或引發(fā)由調(diào)用__missing__ (key)返回或引發(fā)的任何內(nèi)容。子類中不存在其他操作或方法調(diào)用__missing__()。如果沒有定義_missing__(),則dSub[key]會引發(fā)KeyError。在子類中__missing__()必須定義為一個方法,不能是一個實例變量。[注:子類的概念將在本系列后續(xù)文章中詳細介紹]
    • d[key]=value 將字典d中鍵對應(yīng)的值設(shè)為value,如果鍵key存在,則用value更新對應(yīng)的值,否則插入鍵值對(key,value)。
    • del d[key] 將字典中鍵key對應(yīng)的鍵值對移除,如果不存在該鍵則報KeyError。
    • key in d 如果在字典中存在key則為True,否則為False。
    • key not in d 如果在字典中不存在key則為True,否則為False。等同于not key in d。
    • iter(d) 返回字典中鍵的一個迭代器。是iter(d.keys())的快捷方式。
    • d.clear() 清除字典中所有鍵值對。
    • d.copy() 返回字典d的一個淺拷貝。
    • dict.fromkeys(iterable[, value]) 用來創(chuàng)建包含以itervale中元素為鍵value為值的鍵值對的字典,如果未指定value則鍵值對的值均為None。此方法是dict的類方法。
    • d.get(key[, default]) 如果字典d包含鍵key,則返回鍵key對應(yīng)的值,否則返回default,如果沒有給定default則返回None。
    • d.items() 返回字典的鍵值對的一個新視圖。
    • d.keys() 返回字典的鍵的一個新視圖。
    • d.pop(key[, default]) 如果key在字典d中,則從d中移除key對應(yīng)的鍵值對并返回其對應(yīng)的值,否則返回default。如果字典d中不存在鍵key并且沒有指定default,則報KeyError。
    • d.popitem() 從字典d中移除并返回一個鍵值對。鍵值對的返回順序為后進先出,即后加入的鍵值對先返回。
    • reversed(d) 返回字典d的鍵的一個逆序迭代器。
    • d.setdefault(key[, default]) 如果鍵key在字典中,則返回其對應(yīng)的值,否則將鍵值對(key,default)插入到d中并返回default的值。default缺省為None。
    • d.update([other]) 使用other中的鍵值對更新字典,對存在的鍵的值進行覆蓋,鍵不存在時插入鍵值對。返回None。其中other可以是字典對象,也可以是包含鍵值對的可迭代對象,或是關(guān)鍵字形式的參數(shù)。
    • d.values() 返回字典d中值的一個新視圖。字典的一個值視圖和另一個值視圖的相等性比較總是返回False,包括自己和自己比較。

    示例如下:

    【示例】字典支持的操作

    字典視圖對象

    dict.keys()、dict.values()和dict.items()返回的對象是視圖對象。它們提供了字典項(鍵,值,鍵值對)的動態(tài)視圖,這意味著當(dāng)字典更改時,視圖也將隨著更改。

    字典視圖對象支持如下操作:

    • len(dictview) 返回字典視圖dictview中項的個數(shù)
    • iter(dictview) 返回字典視圖的一個迭代器。迭代順序按鍵值對插入順序。當(dāng)字典在插入或刪除鍵值對時對視圖進行迭代會報RuntimeError或不能完整迭代所有項。[注:由于迭代順序是按鍵值對插入順序,因此可使用內(nèi)置函數(shù)zip()來產(chǎn)生鍵值對:pairs=zip(d.keys(),d.values())。另一種產(chǎn)生鍵值對的方法是:pairs = [(k, v) for (k, v) in d.items()]
    • x in dictview 如果x在視圖dictview中則返回True,否則返回False
    • reversed(dictview) 返回字典視圖的一個逆序迭代器,迭代順序按鍵值對插入順序的逆序。

    字典視圖對象實例如下:

    【示例】字典視圖支持的操作

    [注] 鍵視圖是類似集合的視圖,因為它們項是唯一的并且是可哈希的。當(dāng)字典中所有鍵對應(yīng)的值都是可哈希的,則鍵值對就是唯一的,可哈希的,那么鍵值對視圖也是類似集合的視圖。由于值視圖中的項通常不是唯一的,所以值視圖不能視為與集合類似。對于類似集合的視圖,為抽象基類collections.abc.Set定義的所有操作都是可用的(例如==,

    【結(jié)束】

    總結(jié)

    以上是生活随笔為你收集整理的python中字典的value可以为任意对象_Python学习入门(13)—字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。