欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python映射類型之dict詳解

 更新時間:2022年03月15日 10:19:51   作者:安瀾仙王  
這篇文章主要為大家詳細介紹了Python映射類型之dict,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

映射類型 — dict

字典可用多種方式來創(chuàng)建:

  • 使用花括號內以逗號分隔鍵: 值對的方式: {‘jack’: 4098, ‘sjoerd’: 4127} or {4098:‘jack’, 4127: ‘sjoerd’}
  • 使用字典推導式: {}, {x: x ** 2 for x in range(10)}
dict_a = {key: value for key in 'python' for value in range(2)}
list_phone = [('HUAWEI', '華為'), ('MI', '小米'), ('OPPO', 'OPPO'), ('VIVO', 'VIVO')]
dict_c = {key: value for key, value in list_phone}
  • 使用類型構造器: dict(), dict([(‘foo’, 100), (‘bar’, 200)]), dict(foo=100,bar=200)

字典所支持的操作:

list(d)

返回字典d 中使用的所有鍵的列表

len(d)

返回字典d 中的項數

d[key]

返回d 中以key 為鍵的項。如果映射中不存在key 則會引發(fā)KeyError。

如果字典的子類定義了方法__missing__() 并且key 不存在,則d[key] 操作將調用該方法并附帶鍵key 作為參數。d[key] 隨后將返回或引發(fā)__missing__(key) 調用所返回或引發(fā)的任何對象或異常。沒有其他操作或方法會發(fā)起調用__missing__()。如果未定義__missing__(),則會引發(fā)KeyError。missing() 必須是一個方法;它不能是一個實例變量:

>>> class Counter(dict):
... def __missing__(self, key):
... return 0
>>> c = Counter()
>>> c['red']
0
>>> c['red'] += 1
>>> c['red']
1

上面的例子顯示了collections.Counter 實現的部分代碼。還有另一個不同的__missing__方法是由collections.defaultdict 所使用的。

d[key] = value

將d[key]設為value。

del d[key]

將d[key] 從d中移除。如果映射中不存在key 則會引發(fā)KeyError。

key in d

如果d中存在鍵key 則返回True,否則返回False。

iter(d)

返回以字典的鍵為元素的迭代器。這是iter(d.keys()) 的快捷方式。

clear()

移除字典中的所有元素。

copy()

返回原字典的淺拷貝

深copy

若你想徹底使2個dict完全獨立,無論有多少層數據。那就要用python工具包里的一個工具了

import copy
data = {
    "name":"alex",
    "age":18,
    "scores":{
        "語文":130,
        "數學":60,
        "英語":98,
    }
}
d2 = data.copy()
d3 =copy.deepcopy(data)
d3["scores"]["語文"] = 149
print(d3)
print(data)

classmethod fromkeys(iterable[, value ]) fromkeys()

函數用于創(chuàng)建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值

seq = ('Google', 'Runoob', 'Taobao')
thisdict = dict.fromkeys(seq)
print "新字典為 : %s" %  str(dict)
thisdict = dict.fromkeys(seq, 10)
print "新字典為 : %s" %  str(thisdict)
"""
新的字典為 : {'age': None, 'name': None, 'sex': None}
新的字典為 : {'age': 10, 'name': 10, 'sex': 10}
"""

get(key[, default ])

如果key 存在于字典中則返回key 的值,否則返回default。如果default 未給出則默認為None,因而此方法絕不會引發(fā)KeyError。

items()

  • 以列表返回視圖對象,是一個可遍歷的key/value對
  • dict.keys()dict.values()dict.items() 返回的都是視圖對象( view objects),提供了字典實體的動態(tài)視圖,這就意味著字典改變,視圖也會跟著變化
tinydict = {'Name': 'Runoob', 'Age': 7}
print ("Value : %s" %  tinydict.items()) # Value : dict_items([('Age', 7), ('Name', 'Runoob')])

keys()

返回由字典鍵組成的一個新視圖

dict.keys()、dict.values() dict.items() 返回的都是視圖對象( view objects),提供了字典實體的動態(tài)視圖,這就意味著字典改變,視圖也會跟著變化

a = {"a": 3, "b": 2}
print(a.keys()) # <class 'dict_keys'>

pop(key[, default ])

刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。

site= {'name': '菜鳥教程', 'alexa': 10000, 'url': 'www.runoob.com'}
element = site.pop('name')
print('刪除的元素為:', element)
print('字典為:', site)
"""
刪除的元素為: 菜鳥教程
字典為: {'alexa': 10000, 'url': 'www.runoob.com'}
"""

popitem()

  • popitem() 方法隨機返回并刪除字典中的最后一對鍵和值。
  • 如果字典已經為空,卻調用了此方法,就報出KeyError異常。
  • 返回一個鍵值對(key,value)形式,按照 LIFO(Last In First Out后進先出法)順序規(guī)則,即最末尾的鍵值對。
site= {'name': '菜鳥教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.popitem()
print(pop_obj)  
print(site)

reversed(d)

返回一個逆序獲取字典鍵的迭代器。這是reversed(d.keys()) 的快捷方式

setdefault(key[, default ])

setdefault() 方法和 get()方法 類似, 如果鍵不存在于字典中,將會添加鍵并將值設為默認值。

tinydict = {'Name': 'Runoob', 'Age': 7}
print ("Age 鍵的值為 : %s" %  tinydict.setdefault('Age', None))
print ("Sex 鍵的值為 : %s" %  tinydict.setdefault('Sex', None))
print ("新字典為:", tinydict)

update([other ])

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

tinydict = {'Name': 'Runoob', 'Age': 7}
tinydict2 = {'Sex': 'female' }
tinydict.update(tinydict2)
print ("更新字典 tinydict : ", tinydict)

values()

返回一個視圖對象,dict.keys()、dict.values() 和 dict.items() 返回的都是視圖對象( view objects),提供了字典實體的動態(tài)視圖,這就意味著字典改變,視圖也會跟著變化

a = {"a": 3, "b": 2}
print(a.values()) # dict_values([3, 2])

d | other

合并d 和other 中的鍵和值來創(chuàng)建一個新的字典,兩者必須都是字典。當d 和other 有相同鍵時,other 的值優(yōu)先。3.9才支持

a = {"apple": 3, "banana": 4}b = {"grape": 5, "banana": 8}print(a | b)

d |= other

  • 用other 的鍵和值更新字典d ,other 可以是mapping 或iterable 的鍵值對。當d 和other 有相同鍵時,other 的值優(yōu)先。
  • 3.9 新版功能
a = {"one": 1, "two": 2, "three": 3}
a |= {"three": 30, "four": 4, "five": 5}
print(a)
a = {"apple": 3, "banana": 4}
b = {"grape": 5, "banana": 8}
a |= b
print(a)
"""
{'one': 1, 'two': 2, 'three': 30, 'four': 4, 'five': 5}
{'apple': 3, 'banana': 8, 'grape': 5}
"""

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容! 

相關文章

  • python 基于dlib庫的人臉檢測的實現

    python 基于dlib庫的人臉檢測的實現

    這篇文章主要介紹了python 基于dlib庫的人臉檢測的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Python下線程之間的共享和釋放示例

    Python下線程之間的共享和釋放示例

    這篇文章主要用示例簡單介紹了Python下線程之間的共享和釋放,線程一直是Python開發(fā)者中的熱點問題,需要的朋友可以參考下
    2015-05-05
  • python獲取遠程圖片大小和尺寸的方法

    python獲取遠程圖片大小和尺寸的方法

    這篇文章主要介紹了python獲取遠程圖片大小和尺寸的方法,實例分析了Python中urllib2.urlopen方法及圖片操作技巧,需要的朋友可以參考下
    2015-03-03
  • Python常用內置函數的使用教程詳解

    Python常用內置函數的使用教程詳解

    Python官方文檔對于內置函數的介紹較為簡略,但這些內置函數在日常工作中卻扮演著不可或缺的角色。這篇文章為大家介紹了Python常用內置函數的使用,需要的可以參考一下
    2023-04-04
  • Python學習之pip包管理工具的使用

    Python學習之pip包管理工具的使用

    學習?Python?的過程中,經常會使用?pip?命令去安裝第三方模塊。pip?是?Python?默認集成的包管理工具,而其本質就是?Python?標準庫中的一個包,只是比較特殊一些。本文就來為你你全面揭示一下?pip?包管理工具的使用
    2022-08-08
  • Python同時迭代多個序列的方法

    Python同時迭代多個序列的方法

    這篇文章主要介紹了Python同時迭代多個序列的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python 實現中值濾波、均值濾波的方法

    Python 實現中值濾波、均值濾波的方法

    今天小編就為大家分享一篇Python 實現中值濾波、均值濾波的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 淺談python已知元素,獲取元素索引(numpy,pandas)

    淺談python已知元素,獲取元素索引(numpy,pandas)

    今天小編就為大家分享一篇淺談python已知元素,獲取元素索引(numpy,pandas),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致

    如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致

    這篇文章主要介紹了如何在sae中設置django,讓sae的工作環(huán)境跟本地python環(huán)境一致,需要的朋友可以參考下
    2017-11-11
  • python 使用shutil復制圖片的例子

    python 使用shutil復制圖片的例子

    今天小編就為大家分享一篇python 使用shutil復制圖片的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論