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

歡迎訪問 生活随笔!

生活随笔

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

python

Python字典数据类型及基本操作

發(fā)布時間:2025/3/20 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python字典数据类型及基本操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

字典是Python中重要的數(shù)據(jù)類型,字典是由"鍵-值"對組成的集合,"鍵-值"對之間用逗號隔開,包含在一對花括號中。字典中的"值"通過"鍵"來引用。

創(chuàng)建字典

創(chuàng)建字典的格式如下:

dictionary = {key1:value1, key2:value2, ...}

創(chuàng)建實例如下:

dict = {} #空字典 dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell')} #多元素字典 dict2 = {'lesson1': 'Python', lesson2': 'Java', 'lesson3': 'Shell')} #注意和dict1不同(lesson首字母小寫),原因是字典中的鍵是區(qū)分大小寫的

說明:字典的鍵是區(qū)分大小寫的。

獲取字典的值

訪問字典中的元素有2種方法。第1種是通過key值獲取相應(yīng)的value值,第二種是通過字典函數(shù)get()來獲取。

(1)通過key值獲取相應(yīng)的value值。語法格式為:value = dict[key]。具體實例如下:

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> dict1 = {'Lesson1': 'Python'} >>> dict1['Lesson1'] 'Python' >>> dict1['Lesson2'] #不存在對應(yīng)的鍵值,返回KeyError報錯 Traceback (most recent call last):File "<stdin>", line 1, in <module> KeyError: 'Lesson2'

(2)通過get()函數(shù)獲取value值,get()函數(shù)使用格式如下:

dict.get(key[,default_value])

說明:參數(shù)key表示字典的鍵值,參數(shù)default_value可以作為get()的返回值,默認值為None。如果指定default_value參數(shù)值,表示如果參數(shù)key鍵值在字典key列表中,則返回對應(yīng)的value值,如果不在,則返回預(yù)先設(shè)定的default_value的值。具體實例如下所示:

>>> dict1 = {'Lesson1': 'Python'} >>> dict1.get('Lesson1') 'Python' >>> dict1.get('Lesson2') >>> dict1.get('Lesson2','Perl') 'Perl'

添加字典元素

方法一:直接添加方法,使用格式如下:

dict[key] = value

如果鍵值key不在字典dict的key列表中,字典dict添加(key:value)的記錄。如果已經(jīng)在key列表中,則修改鍵值key對應(yīng)的value值。

dict['Lesson3'] = 'Perl'

舉個例子,假設(shè)字典dict中不存在鍵名為Lesson3的字符串,則直接添加。如果已存在,則刷新值為Perl字符串。實例如下:

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> dict1 = {'Lesson1': 'Python'} >>> dict1['Lesson3'] = 'Perl' >>> dict1 {'Lesson3': 'Perl', 'Lesson1': 'Python'} >>> dict1 = {'Lesson3': 'Python'} >>> dict1['Lesson3'] = 'Perl' >>> dict1 {'Lesson3': 'Perl'}

方法二:通過調(diào)用setdefault()函數(shù)方法實現(xiàn)。格式如下:

dict.setdefault(key[,default_value])

如果索引key在字典key列表中,則返回對應(yīng)的value值,如果不在key列表中,則添加新索引key和value在字典中,并反饋default_value值,默認值 為None。使用實例如下:

>>> dict1 = {'Lesson1': 'Python'} >>> dict1.setdefault('Lesson1') 'Python' >>> dict1.setdefault('Lesson2') >>> dict1 {'Lesson2': None, 'Lesson1': 'Python'} >>> dict1.setdefault('Lesson3','Shell') 'Shell' >>> dict1 {'Lesson3': 'Shell', 'Lesson2': None, 'Lesson1': 'Python'}

獲取字典所有keys、Values或者key-valu鍵值對

(1)獲取字典的所有"鍵"-"值"元素。通過調(diào)用字典的items()方法實現(xiàn),返回的是(key,value)元組組成的列表。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.items() [('Lesson3', 'Shell'), ('Lesson2', 'Java'), ('Lesson1', 'Python')]

(2)獲取字典的中key組成的列表。通過調(diào)用字典的keys()方法實現(xiàn)。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.keys() ['Lesson3', 'Lesson2', 'Lesson1']

(3)獲取字典的中value組成的列表。通過調(diào)用字典的values()方法實現(xiàn)。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.values() ['Shell', 'Java', 'Python']

判斷指定key是否存在字典

判斷字典中是否存在鍵值為k的元素。通過調(diào)用字典has_key()方法實現(xiàn)。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.has_key('Lesson1') True >>> dict1.has_key('Lesson4') False

刪除字典元素。

方法一:通過調(diào)用內(nèi)置函數(shù)del實現(xiàn)。實例如下:

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> del dict1['Lesson1'] >>> dict1 {'Lesson3': 'Shell', 'Lesson2': 'Java'}

方法二:通過調(diào)用字典的pop()函數(shù)實現(xiàn)。pop()函數(shù)格式如下:

dict.pop(key[,default_value])

pop()函數(shù)必須指定參數(shù)索引key才能刪除對應(yīng)的值。如果索引key在字典key列表中,則返回索引key對應(yīng)的value值。如果不存在,則返回預(yù)先設(shè)置的default_value值,如果未設(shè)置,會爬出KeyError異常信息。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.pop('Lesson3') 'Shell' >>> dict1 {'Lesson2': 'Java', 'Lesson1': 'Python'} >>> dict1.pop('Lesson3','Perl') 'Perl'

方法三:調(diào)用字典的clear()函數(shù),清除字典的所有內(nèi)容。實例如下:

>>> dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson3': 'Shell'} >>> dict1.clear() >>> dict1 {}

字典排序

字典的排序可以通過使用sorted()函數(shù)實現(xiàn),實例如下:

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> dict = {'2':"Python",'1':"Java",'3':"C++"} >>> sorted(dict.items(),key=lambda d:d[0]) [('1', 'Java'), ('2', 'Python'), ('3', 'C++')] >>> sorted(dict.items(),key=lambda d:d[1]) [('3', 'C++'), ('1', 'Java'), ('2', 'Python')]

也可以使用如下方法對值進行排序,先使用zip進行反轉(zhuǎn)

>>> sorted(zip(prices.values(),prices.keys())) [(10.75, 'FB'), (37.2, 'HPQ'), (45.23, 'ACME'), (205.55, 'IBM'), (612.78, 'AAPL')]

說明:如果存在values相同的情況下,則會按照key的大小進行排序。如下:

>>> prices = {'ACME': 45.23, 'AAPL': 612.78, 'IBM': 612.78, 'HPQ': 37.20,'FB': 10.75 } >>> sorted(zip(prices.values(),prices.keys())) [(10.75, 'FB'), (37.2, 'HPQ'), (45.23, 'ACME'), (612.78, 'AAPL'), (612.78, 'IBM')]

計算字典最大值和最小值

通過使用zip()將字典鍵和值反轉(zhuǎn),再使用min()和max()函數(shù)計算。

>>> prices = {'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20,'FB': 10.75 } >>> min_price = min(zip(prices.values(),prices.keys())) >>> print(min_price) (10.75, 'FB') >>> max_price = max(zip(prices.values(),prices.keys())) >>> print(max_price) (612.78, 'AAPL')

獲取字典相同元素

獲取兩個字典相同的鍵、值或者items。可以通過集合運算的方式獲取。

>>> dic_a = {'x':1,'y':2,'z':3} >>> dic_b = {'w':10,'x':11,'y':2} >>> dic_a.keys() & dic_b.keys() {'x', 'y'} >>> dic_a.keys() - dic_b.keys() {'z'} >>> dic_a.items() & dic_a.items() {('z', 3), ('x', 1), ('y', 2)}

這些類型的操作額可用來修改或過濾掉字典中的內(nèi)容。使用字典推導(dǎo)式代碼如下:

>>> dic_c = { key:dic_a[key] for key in dic_a.keys() - {'z','w'}} >>> print(dic_c) {'x': 1, 'y': 2}

創(chuàng)建有序字典

可以使用collections模塊中的OrderedDict類,當對字典迭代時,它會嚴格按照元素初始添加的順序進行。

''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> from collections import OrderedDict >>> prices = OrderedDict() >>> prices['ACME'] = 45 >>> prices['AAPL'] = 46 >>> prices['IBM'] = 47 >>> for key in prices: ... print(key,prices[key]) ... ('ACME', 45) ('AAPL', 46) ('IBM', 47)

從字典中提取子集

從指定的字典中按照鍵或者值進行過濾獲取字典子集。

>>> prices = {'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20,'FB': 10.75 } >>> p1 = {key:value for key, value in prices.items() if value > 20} >>> print(p1) {'HPQ': 37.2, 'AAPL': 612.78, 'ACME': 45.23, 'IBM': 205.55} >>> tech_name = {'ACME', 'AAPL', 'IBM'} >>> p2 = {key:value for key, value in prices.items() if key in tech_name} >>> print(p2) {'AAPL': 612.78, 'IBM': 205.55, 'ACME': 45.23}

找到最大或最小的N個元素

使用heapq模塊中的兩個函數(shù)nlargest()和nsmallest()獲取最大和最小的N個元素。

>>> import heapq >>> prices = {'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20,'FB': 10.75 } >>> large3_lst = heapq.nlargest(3,zip(prices.values(),prices.keys())) >>> print(large3_lst) [(612.78, 'AAPL'), (205.55, 'IBM'), (45.23, 'ACME')] >>> small3_lst = heapq.nsmallest(3,zip(prices.values(),prices.keys())) >>> print(small3_lst) [(10.75, 'FB'), (37.2, 'HPQ'), (45.23, 'ACME')] 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Python字典数据类型及基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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