狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動(dòng)力 > 頭條 > python中dict的用法

網(wǎng)站性能檢測(cè)評(píng)分

注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。

python中dict的用法

一步一步帶你理解 Python 中的淺復(fù)制與深復(fù)制 企業(yè)視頻課程

img

保鏢

關(guān)注

Python 中的賦值語(yǔ)句不會(huì)對(duì)對(duì)象進(jìn)行拷貝,僅僅是將變量名指向?qū)ο?。?duì)于不可修改的對(duì)象來(lái)說(shuō),這種機(jī)制不會(huì)影響我們?nèi)粘5氖褂?。但是,?duì)于可修改的對(duì)象,你偶爾可能需要對(duì)該對(duì)象做一個(gè)真正的復(fù)制。何為真正的復(fù)制?就是修改拷貝來(lái)的對(duì)象不會(huì)影響原來(lái)的對(duì)象。

Python 中內(nèi)置的可修改的集合類對(duì)象,比如列表、字典、集合等,可以直接使用對(duì)應(yīng)的工廠方法進(jìn)行拷貝。

需要注意的是,對(duì)于復(fù)合類型的對(duì)象,比如列表、字典、集合等,復(fù)制有淺復(fù)制與深復(fù)制兩種類型。

淺復(fù)制意味著新建一個(gè)對(duì)象,但是其子元素仍然指向的對(duì)應(yīng)原對(duì)象的子對(duì)象。也就是說(shuō),這只會(huì)對(duì)原對(duì)象進(jìn)行一層的拷貝,而不會(huì)遞歸的對(duì)子對(duì)象也進(jìn)行拷貝。

深復(fù)制則會(huì)遞歸的對(duì)子對(duì)象進(jìn)行拷貝。

如果上面的看不懂,沒(méi)關(guān)系,我們通過(guò)一個(gè)個(gè)例子來(lái)搞清楚。

淺復(fù)制

現(xiàn)在下面這個(gè)列表,我們使用 list() 方法對(duì)它進(jìn)行復(fù)制

這意味著 xs 和 ys 是兩個(gè)不同的對(duì)象。我們可以看看它們的值

為了證明 xs 與 ys 確實(shí)不同,我們可以做個(gè)小實(shí)驗(yàn)。添加一個(gè)子列表到 xs 中,然后看會(huì)不會(huì)影響 ys 。

與預(yù)期相同,如果只是修改原對(duì)象這一層,確實(shí)不對(duì)對(duì) ys 造成影響。

但是由于是淺復(fù)制,ys 中的子元素并非是 xs 子元素的拷貝,僅僅是 xs 子對(duì)象的引用。因此,如果你修改 xs 中的子元素,ys 中的子元素同樣會(huì)被修改。

看起來(lái)我們只是修改了 xs 中的子元素,實(shí)則 ys 中的子元素也被修改了,這是由于淺復(fù)制的緣故。

現(xiàn)在我們大概清楚了淺復(fù)制與深復(fù)制的區(qū)別,但是還有兩個(gè)問(wèn)題待解決:

一是,對(duì)于內(nèi)置的集合類對(duì)象,我們?cè)趺催M(jìn)行深復(fù)制?

二是,對(duì)于任意的類,又該如何進(jìn)行淺復(fù)制與深復(fù)制?

答案是標(biāo)準(zhǔn)庫(kù)中的 copy 模塊,其提供了簡(jiǎn)單的方法對(duì)對(duì)象進(jìn)行淺復(fù)制或深復(fù)制。

深復(fù)制

這次我們?nèi)匀皇褂蒙厦娴睦?,不同的是,我們使?copy 模塊中的 deepcopy() 方法來(lái)進(jìn)行復(fù)制。

還是先看看各自的值

這次,因?yàn)?zs 對(duì) xs 進(jìn)行了深復(fù)制,即不僅拷貝了 xs 本身,還對(duì)它的子對(duì)象都進(jìn)行了遞歸的拷貝,所以,如果我們?cè)俅涡薷?xs 的子元素時(shí),并不會(huì)對(duì) zs 造成影響。我們來(lái)試一試

果然,與預(yù)期一致。

順便說(shuō)下,使用 copy 模塊中的 copy() 方法可以對(duì)對(duì)象進(jìn)行淺復(fù)制。平時(shí)開(kāi)發(fā)需要淺復(fù)制的時(shí)候,你可以使用該方法,但如果碰到內(nèi)置的集合類對(duì)象,比如列表、字典、集合等的時(shí)候,使用對(duì)應(yīng)的工廠方法如 list() ,dict() ,set() 等更 Pythonic 一些。

對(duì)任意對(duì)象進(jìn)行復(fù)制

現(xiàn)在有一個(gè)點(diǎn)類 Point ,如下

其中,__repr__ 方法可以讓我們更方便的查看對(duì)象的信息。需要注意的是,f'...' 這種格式化字符串的方式在 Python 3.6 才支持,如果是 Python 2 或者 3.6 以前的版本可以使用 '...' % (v1[, v2, ...]) 的方式。

現(xiàn)在我們創(chuàng)建一個(gè)點(diǎn)對(duì)象并進(jìn)行淺復(fù)制

查看兩個(gè)對(duì)象的信息

和預(yù)期一致。

需要注意的是,因?yàn)轭惖膬蓚€(gè)成員 x 和 y 都是簡(jiǎn)單類型,這里是整型,所以這里淺復(fù)制與深復(fù)制沒(méi)有任何差別。后面我會(huì)擴(kuò)展這個(gè)例子。

現(xiàn)在我要定義一個(gè)矩形類,其類成員將會(huì)使用到上面的點(diǎn)類。

首先我們先試一下淺復(fù)制

看下各自的信息

記得我們上面修改列表的淺復(fù)制與深復(fù)制的例子嗎?這里,我要類似的實(shí)驗(yàn)。我們修改 rect 的成員,不出意外的話,srect 也會(huì)改變。

果然。

下面,我會(huì)進(jìn)行深復(fù)制,然后再類似的修改

這次,深復(fù)制出來(lái)的 drect 對(duì)象與 srect 才能說(shuō)是“真正不同”的對(duì)象。

copy 模塊中還有其它很多用法,比如定義對(duì)象的 __copy__() 和 __deepcopy__() 方法可以自定義對(duì)象的淺復(fù)制與深復(fù)制行為等。這不是本文的重心,有興趣的可以去看相應(yīng)的文檔 https://docs.python.org/3/library/copy.html 。

小結(jié)

* 淺復(fù)制不會(huì)克隆子對(duì)象,所以,復(fù)制出來(lái)的對(duì)象和原對(duì)象并非完全不想關(guān)。

* 深復(fù)制會(huì)遞歸的克隆子對(duì)象,所以,復(fù)制出來(lái)的對(duì)象和原對(duì)象完全不相關(guān),但是深復(fù)制比淺復(fù)制會(huì)慢一些。

* 使用 copy 模塊你可以復(fù)制任何類,不管是淺復(fù)制還是深復(fù)制。

鞏固

從網(wǎng)上找了組圖片(侵刪),讓大家加深下認(rèn)識(shí)

首先是賦值

然后是淺復(fù)制

最后是深復(fù)制

Python基礎(chǔ)學(xué)習(xí)之常用六大數(shù)據(jù)類型 推廣視頻課程

img

畢爾白

關(guān)注

剛開(kāi)始學(xué)習(xí)一門編程語(yǔ)言,除了了解運(yùn)行環(huán)境與語(yǔ)言類型之外,最基本還是從該語(yǔ)言的基本數(shù)據(jù)類型開(kāi)始學(xué)起。

Python六大常用數(shù)據(jù)類型:

int 整數(shù) float 浮點(diǎn)數(shù) str 字符串 list 列表 tuple 元組 dict 字典

講解這些先說(shuō)一下python中的變量與變量名。

變量其實(shí)本質(zhì)上是一個(gè)具有特殊格式的內(nèi)存,變量名則是指向這個(gè)內(nèi)存的別名。python中的變量不需要聲明,所有的變量必須賦值了才能使用。賦值的步驟:

a = 100

第一步:準(zhǔn)備好值100第二部:準(zhǔn)備好變量名a第三部:將值與名字進(jìn)行關(guān)聯(lián)

一、整數(shù)python將其他一些靜態(tài)語(yǔ)言中的int、long,也就是整型和長(zhǎng)整型合并為了一個(gè)。python中的int是邊長(zhǎng)的,也就是說(shuō)可以存儲(chǔ)無(wú)限大的整數(shù),但是這是不現(xiàn)實(shí)的,因?yàn)闆](méi)有這么多的內(nèi)存夠分配。整型不僅支持十進(jìn)制,還支持二進(jìn)制、八進(jìn)制、十六進(jìn)制??梢酝ㄟ^(guò)下面的方式來(lái)互相轉(zhuǎn)換:

print(bin(20)) #轉(zhuǎn)換二進(jìn)制print(oct(20)) #轉(zhuǎn)換八進(jìn)制print(hex(20)) #轉(zhuǎn)換十六進(jìn)制

二、浮點(diǎn)型浮點(diǎn)數(shù)也就是小數(shù),如22.1,44.2,也可以使用科學(xué)計(jì)數(shù)法,比如:1.22e8。python支持對(duì)整數(shù)和浮點(diǎn)數(shù)直接進(jìn)行四則混合運(yùn)算。整數(shù)運(yùn)算結(jié)果仍然是整數(shù),浮點(diǎn)數(shù)運(yùn)算結(jié)果仍然是浮點(diǎn)數(shù),但整數(shù)和浮點(diǎn)數(shù)混合運(yùn)算的結(jié)果就變成浮點(diǎn)數(shù)了。

a = 1b = 1.1print(type(a+b)) #

三、字符串字符串在任何編程語(yǔ)言中都是最常用的數(shù)據(jù)類型。字符串的創(chuàng)建很簡(jiǎn)單,也是上面所說(shuō)的三步,但是要加上單引號(hào)或者雙引號(hào)。

a = "hello python"

也可以使用 “”" 創(chuàng)建多行字符串:

a = """ hello python"""

字符串可以通過(guò)下面方式進(jìn)行截取或者連接:

print (str[0:4]) 輸出第一個(gè)到倒數(shù)第四個(gè)的所有字符 print (str[0]) 輸出單字符 第1個(gè)字符print (str[3:]) 輸出從第四個(gè)開(kāi)始之后的所有字符print (str * 2) 輸出字符串兩次print (str + "bbbb") 連接字符串

字符串常用函數(shù):str.strip() 消除字符串s左右兩邊的空白字符(包括’\t’,’\n’,’\r’,’’)len(str) 獲取字符串長(zhǎng)度str.upper() 轉(zhuǎn)換為大寫str.lower() 轉(zhuǎn)換為小寫str.title() 每個(gè)單詞首字母大寫str.capitalize() 首字母大寫字符串翻轉(zhuǎn):

a = 'abcde'print(a[::-1])

字符串分割:

a = 'hello,python'print(a.split(',')) #['hello', 'python'] 返回一個(gè)列表

相對(duì)應(yīng)的還有一個(gè)將列表元素連接成字符串:

a = ['hello', 'python']str = '-'print(str.join(a)) # hello-python

四、列表列表的寫法是一個(gè)方括號(hào)內(nèi)的值用逗號(hào)分隔。比如上面的[‘hello’, ‘python’]。列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型,列表中的每個(gè)元素都分配一個(gè)數(shù)字索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推。訪問(wèn)列表中的值可以通過(guò)下面的方式:

list1 = [1, 2, 3, 4, 5, 6]print(list1[2])

同樣可以通過(guò)索引截取

print ("list1[2:5]: ", list1[2:5])

列表常用操作:list1.append(‘7’) 追加一個(gè)元素在末尾,每次只能添加一個(gè)len(list1) 返回列表元素個(gè)數(shù)max(list1) 返回列表元素最大值min(list1) 返回列表元素最小值list1.count(obj) 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)list1.index(obj) 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置list1.reverse() 反向列表中元素list1.clear() 清空列表list1.extend(seq) 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值,也就是擴(kuò)充了列表 append與extend的區(qū)別:

A = ['a', 'b', 'c']A.append(['d', 'e'])print(A) # ['a', 'b', 'c', ['d', 'e']]B = ['a', 'b', 'c']B.extend(['d', 'e'])print(B) # ['a', 'b', 'c', 'd', 'e']

extend方法只能接收l(shuí)ist類型,它是把這個(gè)列表中的每個(gè)元素添加到原list中。append可以接收任意類型,追加到原list的末尾。

五、元組元組的創(chuàng)建也很簡(jiǎn)單,和list類似,只是把’[]‘換成了’()’。

tup1 = ('hello', 'python')

元組中只有一個(gè)元素的時(shí)候要注意:

tup2 = (10)tup3 = ('a')print(type(tup2)) #print(type(tup3)) #

因?yàn)檫@樣會(huì)被解釋器當(dāng)做運(yùn)算符,所以正確的方法是在第一個(gè)元素后面添加逗號(hào)。

tup4 = ('a',)print(type(tup4)) #

元組同樣可以使用下標(biāo)索引來(lái)訪問(wèn)元組中的值:

tup5 = ('hello', 'python', 'hello', 'word')print(tup5[1]) #pythonprint(tup5[1:3]) #('python', 'hello')

注意:元組是不可以被修改的。

tup6 = ('hello', 'python', 'hello', 'word')tup6[2] = 'aaa'

上面會(huì)出現(xiàn)一個(gè)異常: TypeError: ‘tuple’ object does not support item assignment.但是元組中如果包含了一個(gè)列表,那么這個(gè)列表是可以被修改的。

tup7 = ('hello', 'python', 'hello', 'word', ['aa', 'bb', 'cc'])tup7[-1][1] = 'ddd'print(tup7) # ('hello', 'python', 'hello', 'word', ['aa', 'ddd', 'cc'])

元組運(yùn)算符:len(tup) 計(jì)算元素個(gè)數(shù)tup1 + tup2 連接生成新元組tup * 4 元組復(fù)制num in tup 元素是否存在,返回True/False

六、字典python中的字典就是key,value的形式。使用大括號(hào)包含起來(lái)。字典中的成員的鍵是唯一的,如果出現(xiàn)多個(gè)同名的鍵,那么寫在后面覆蓋前面的值。形式如下:

dict1 = {'a' : 1, 'b' : 2}

字典的常用操作最基本的也就是增刪改查:獲取:直接通過(guò)鍵來(lái)獲取。

dict['b'] # 2

dict.keys() 獲取字典中所有的鍵dict.values() 獲取字典中的所有的值增加:

dict1['c'] = 3 #{'a': 1, 'b': 2, 'c': 3} #如果鍵存在則更新對(duì)應(yīng)的值

修改:直接給鍵進(jìn)行再次賦值就可以修改鍵對(duì)應(yīng)的值了。如果鍵不存在,則變成添加成員。還可以通過(guò):

dict1.update({"a":"11"})dict1.setdefault("a", "222") # 已存在的鍵則修改無(wú)效dict1.setdefault("d","222") # 不存在的話則創(chuàng)建dict1.setdefault("e") # 沒(méi)有設(shè)置值為None

刪除:使用pop刪除指定鍵對(duì)應(yīng)的成員,同時(shí)返回該值

print(dict1) # {'a': '11', 'b': 2, 'c': 3, 'd': '222', 'e': None}print(dict1.pop("a")) # aprint(dict1) # {'b': 2, 'c': 3, 'd': '222', 'e': None}#在不設(shè)置默認(rèn)值的情況下,使用pop刪除不存在的鍵,會(huì)報(bào)錯(cuò)。print(dict1.pop("f")) # 報(bào)錯(cuò) KeyError: 'f'

如果設(shè)置了默認(rèn)值, print(dict1.pop(“f”, None)),則不會(huì)報(bào)錯(cuò),返回這個(gè)默認(rèn)值。判斷是否刪除成功可以通過(guò)下面方式來(lái)判斷:

if dict1.pop("f", None) == None: print('鍵不存在')else: print('刪除成功')

以上則是python中最基本的數(shù)據(jù)類型以及用法,當(dāng)然還有其他的數(shù)據(jù)類型,作者暫時(shí)只列舉了這些。

更過(guò)python文章,關(guān)注作者哦!干貨多多!!

Python之list、dict、 json等常見(jiàn)操作 流量視頻課程

img

圣誕節(jié)

關(guān)注

合并兩個(gè)list并去除重復(fù)元素

合并list用+運(yùn)算符,再用set去除重復(fù)元素,最后轉(zhuǎn)換回list。

用其中一個(gè)list+另一個(gè)去除在前面list后的元素組成的list。

合并兩個(gè)list生成dict(一個(gè)為keys,一個(gè)為values)

先對(duì)兩個(gè)list用zip函數(shù),最后轉(zhuǎn)換成dict。

dict轉(zhuǎn)換成元素為tuple的list

用dict的items函數(shù)。

用dict的iteritems函數(shù)。

兩個(gè)list元素分別相加生成求和后的list

用map和operator.add。

用zip和sum函數(shù)。

json轉(zhuǎn)換成dict

用json.loads()方法。

dict轉(zhuǎn)換成json

用json.dumps()方法。

json數(shù)據(jù)寫入到文件

用json.dump()方法。

從文件讀入json數(shù)據(jù)

用json.load()方法。

Python字典操作技巧 互聯(lián)網(wǎng)視頻課程

img

愉快的

關(guān)注

一、如何讓字典保持有序

可以使用collections模塊中的OrderedDict類,OrderedDict內(nèi)部維護(hù)了一個(gè)雙向鏈表,它會(huì)根據(jù)元素加入的順序來(lái)排列鍵的位置,大小是普通字典的2倍多,所以,在使用時(shí)要做好需求分析。

from collections import OrderedDictd=OrderedDict() d['a']=1d['b']=2d['c']=3d['d']=4for key in d:print(key,d[key])

輸出結(jié)果:

a 1b 2 c 3 d 4 [Finished in 0.2s]

二、如何對(duì)字典求最大值、最小值:

為了對(duì)字典內(nèi)容做有用的計(jì)算,通常會(huì)利用zip()將字典的鍵和值反轉(zhuǎn)過(guò)來(lái):

prices={'a':50.3,'b':12.3,'c':15.98,'d':10.75 }min_price=min(zip(prices.values(),prices.keys()))max_price=max(zip(prices.values(),prices.keys()))print(min_price)print(max_price)

輸出結(jié)果:

(10.75, 'd')(50.3, 'a')[Finished in0.2s]

三、如何找到兩個(gè)字典中相同的地方:

python字典keys()方法同items()方法,返回的是keys-view對(duì)象,它們支付常見(jiàn)的集合操作如并,交,差;但values()方法不支持。

x={ 'a':1, 'b':5, 'c':10}y={ 'd':2, 'b':5, 'c':8}re_a=x.keys() & y.keys()print('x,y中均有的鍵是:',re_a)re_b=x.keys() - y.keys()print('x中有但y中沒(méi)有的鍵是:',re_b)re_c=x.items() & y.items()print('x,y中相同的鍵值對(duì):',re_c)

輸出結(jié)果:

x,y中均有的鍵是: {'c', 'b'}x中有但y中沒(méi)有的鍵是: {'a'}x,y中相同的鍵值對(duì): {('b', 5)}[Finished in0.1s]

五、如何通過(guò)公共鍵對(duì)字典列表排序

利用operator模塊中的itemgetter函數(shù)排序非常簡(jiǎn)單假設(shè)我們從數(shù)據(jù)庫(kù)中獲得的數(shù)據(jù)如下:

rows=[{'fname':'Brian','lname':'Jones','age':18},{'fname':'David','lname':'Beazley','age':25},{'fname':'John','lname':'Clesse','age':19},{'fname':'Bim','lname':'Jones','age':23}]

我們對(duì)以上記錄進(jìn)行排序非常簡(jiǎn)單:

from operator import itemgetterrows_by_fname=sorted(rows,key=itemgetter('fname'))rows_by_age=sorted(rows,key=itemgetter('age'))print(rows_by_fname)print(rows_by_age)

輸出結(jié)果:

[{'fname': 'Bim', 'lname': 'Jones', 'age': 23}, {'fname': 'Brian', 'lname': 'Jones', 'age': 18}, {'fname': 'David', 'lname': 'Beazley', 'age': 25}, {'fname': 'John', 'lname': 'Clesse', 'age': 19}][{'fname': 'Brian', 'lname': 'Jones', 'age': 18}, {'fname': 'John', 'lname': 'Clesse', 'age': 19}, {'fname': 'Bim', 'lname': 'Jones', 'age': 23}, {'fname': 'David', 'lname': 'Beazley', 'age': 25}]

[Finished in0.1s]

Python中defaultdict用法 行業(yè)視頻課程

img

辣椒王

關(guān)注

六月 北京 | 高性能計(jì)算之GPU CUDA培訓(xùn)

6月22-24日

三天密集式學(xué)習(xí) 快速帶你入門

閱讀全文

>

正文共311個(gè)字,預(yù)計(jì)閱讀時(shí)間5分鐘。

defaultdict類就好像是一個(gè)dict,但是它是使用一個(gè)類型來(lái)初始化的

defaultdict類的初始化函數(shù)接受一個(gè)類型作為參數(shù),當(dāng)所訪問(wèn)的鍵不存在的時(shí)候,可以實(shí)例化一個(gè)值作為默認(rèn)值

defaultdict類除了接受類型名稱作為初始化函數(shù)的參數(shù)之外,還可以使用任何不帶參數(shù)的可調(diào)用函數(shù),到時(shí)該函數(shù)的返回結(jié)果作為默認(rèn)值,這樣使得默認(rèn)值的取值更加靈活。

1strings = ('puppy', 'kitten', 'puppy', 'puppy', 2'weasel', 'puppy', 'kitten', 'puppy') 3counts = {} 4""" 5單詞統(tǒng)計(jì) 6""" 7# 方法1 使用判斷語(yǔ)句檢查 8for word in strings: 9if word notin counts:10counts[word] = 111else:12counts[word] += 113print(counts)14# 方法2 使用dict.setdefault()方法來(lái)設(shè)置默認(rèn)值:15counts = {}16for word in strings:17counts.setdefault(word, 0)18counts[word] += 119print(counts)20# 方法3 使用collections.defaultdict21from collections import defaultdict22counts = defaultdict(lambda: 0)23for word in strings:24counts[word] += 125print(counts)

結(jié)果:

1{'puppy': 5, 'kitten': 2, 'weasel': 1}2{'puppy': 5, 'kitten': 2, 'weasel': 1}3defaultdict( at 0x0000000001D12EA0>, {'puppy': 5, 'kitten': 2, 'weasel': 1})4[Finished in 0.1s]

更多:

https://cnblogs/jidongdeatao/p/6930325.html

原文鏈接:https://jianshu/p/fa06ceaa56a8

查閱更為簡(jiǎn)潔方便的分類文章以及最新的課程、產(chǎn)品信息,請(qǐng)移步至全新呈現(xiàn)的“LeadAI學(xué)院官網(wǎng)”:leadai.org

請(qǐng)關(guān)注人工智能LeadAI公眾號(hào),查看更多專業(yè)文章

大家都在看

LSTM模型在問(wèn)答系統(tǒng)中的應(yīng)用

基于TensorFlow的神經(jīng)網(wǎng)絡(luò)解決用戶流失概覽問(wèn)題

最全常見(jiàn)算法工程師面試題目整理(一)

最全常見(jiàn)算法工程師面試題目整理(二)

TensorFlow從1到2 | 第三章 深度學(xué)習(xí)革命的開(kāi)端:卷積神經(jīng)網(wǎng)絡(luò)

裝飾器 | Python高級(jí)編程

今天不如來(lái)復(fù)習(xí)下Python基礎(chǔ)

「每天3分鐘學(xué)Python」字典基本知識(shí)及用dict統(tǒng)計(jì)單詞出現(xiàn)個(gè)數(shù) 流量視頻課程

img

陶初晴

關(guān)注

01

Python的數(shù)據(jù)結(jié)構(gòu)字典被經(jīng)常用到,尤其在查詢使用較多的場(chǎng)合。今天,以統(tǒng)計(jì)數(shù)組中元素出現(xiàn)個(gè)數(shù)為例,介紹Python中字典的基本用法。

02

Python增加元素,不像其他語(yǔ)言使用顯示的操作接口,只需要 dict[1] = 3, 如果字典中不存在1,則直接新增元素鍵值對(duì)(1,3),如果存在則替換鍵1為3.

如何判斷某個(gè)鍵存在呢?

if key in dict: 這樣就判斷出key是否在dict字典中了。

03

統(tǒng)計(jì)元素的出現(xiàn)次數(shù)

[1,3,0,-1,4,3,2,1,2,3,4,5]

如上數(shù)組,統(tǒng)計(jì)元素出現(xiàn)次數(shù)的代碼:

結(jié)果:

{1: 2, 3: 3, 0: 1, -1: 1, 4: 2, 2: 2, 5: 1}

python之dict字典數(shù)據(jù)類型講解 流量視頻課程

前言

python中有一種非常重要的數(shù)據(jù)類型就是dict字典。字典數(shù)據(jù)類型使用頻率是很廣泛的,其實(shí)字典數(shù)據(jù)類型非常類似于Java中的Map,JavaScript中的json。本文就重點(diǎn)講解dict字典。

概念

字典不同于其他數(shù)據(jù)類型,最重要的區(qū)別在于字典數(shù)據(jù)類型是通過(guò)一個(gè)key來(lái)去獲取對(duì)應(yīng)的value。字典是通過(guò)鍵值對(duì)/key-value對(duì)聯(lián)系起來(lái)的。

語(yǔ)法

字典的每個(gè)鍵值對(duì)使用“:”冒號(hào)進(jìn)行分割,多個(gè)鍵值對(duì)使用“,”逗號(hào)分割。整個(gè)字典被一對(duì)“{}”包括起來(lái)。

字典中的key必須要保證唯一,但是值可以重復(fù)。

語(yǔ)法形如:{key1 : value1 , key2 : value2 ......}

案例舉例:{'name' : 'HelloWorld' , 'age' : 30}

字典常用方法

1、定義字典

總結(jié):字典的key使用“單引號(hào)”或者“雙引號(hào)”括起來(lái),key所對(duì)應(yīng)的value的值是什么類型就什么類型。通過(guò)type可以查看變量的具體類型。

2、user對(duì)象增加key-value對(duì)

總結(jié):增加鍵值對(duì)的語(yǔ)法是“變量名[新的key] = value”的形式。

3、user對(duì)象修改address的值

總結(jié):修改指定的鍵所對(duì)應(yīng)的值,語(yǔ)法是:“變量名[已經(jīng)存在的key] = value”的形式。

4、user刪除address

總結(jié):刪除字典中指定的key,使用語(yǔ)法“del 變量名[key]”的形式。

5、根據(jù)指定的key查詢所對(duì)應(yīng)的value

總結(jié):兩種方式可以根據(jù)指定的key獲取對(duì)應(yīng)的value。

6、獲取字典的長(zhǎng)度

總結(jié):使用len方法可以獲取到字典的長(zhǎng)度,這里的長(zhǎng)度其實(shí)是字典中key的個(gè)數(shù)。

7、獲取字典中所有的key

總結(jié):使用keys()函數(shù)獲取所有的key,注意,這個(gè)方法的返回值是一個(gè)key組成的列表。

8、獲取字典中所有value

總結(jié):通過(guò)values()函數(shù)獲取字典中所有的值,注意:返回值是value組成的列表。

9、獲取字典的鍵值對(duì)

總結(jié):使用items方法可以獲取字典的key-value鍵值對(duì),注意:返回的是一個(gè)有鍵值對(duì)所構(gòu)成的元組的列表。

總結(jié)

本文講到了字典這種數(shù)據(jù)類型,字典其實(shí)用的很廣泛,也講解了字典的各種方法,也都非常的簡(jiǎn)單也容易理解,我們必須好好的打好基本功,多學(xué)習(xí)。

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動(dòng)力姐姐微信

img
img

TOP