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

歡迎訪問 生活随笔!

生活随笔

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

python

掌握Python字典的12个例子

發(fā)布時(shí)間:2025/3/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 掌握Python字典的12个例子 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)結(jié)構(gòu)是任何編程語言的關(guān)鍵部分。為了創(chuàng)建健壯且性能良好的產(chǎn)品,必須非常了解數(shù)據(jù)結(jié)構(gòu)。

在這篇文章中,我們將研究Python編程語言的一個(gè)重要數(shù)據(jù)結(jié)構(gòu),即字典。

字典是鍵值對的無序集合。每個(gè)項(xiàng)都有一個(gè)鍵和值。字典可以看作是一個(gè)有特殊索引的列表。

鍵必須是唯一的和不可變的。我們可以使用字符串、數(shù)字(int或float)或元組作為鍵。值可以是任何類型。

考慮一個(gè)我們需要存儲學(xué)生成績的案例。我們可以把它們存儲在字典或列表中。

使用字典可以讓我們通過提供學(xué)生姓名(key)來獲取每個(gè)學(xué)生的成績。另一方面,為了能夠獲得某個(gè)學(xué)生的成績,我們需要一個(gè)額外的列表。

新的列表包含學(xué)生的姓名,并且與成績列表的順序完全相同。

因此,對于這種情況,字典比列表更好。

在簡短的介紹之后,讓我們從示例開始深入研究字典。這些例子將涵蓋字典的特性,以及對它們進(jìn)行操作的函數(shù)和方法。

1.創(chuàng)建字典

我們可以通過在大括號之間提供0個(gè)或多個(gè)鍵值對來創(chuàng)建字典。

empty_dict = {}grades = {'John':'A', 'Emily':'A+', 'Betty':'B', 'Mike':'C', 'Ashley':'A'}grades {'Ashley': 'A', 'Betty': 'B', 'Emily': 'A+', 'John': 'A', 'Mike': 'C'}

2.訪問值

我們通過提供索引來訪問列表中的值。類似地,在字典中,通過使用鍵來訪問值。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' grades['John'] 'A'grades.get('Betty') 'B'

3.訪問所有值或所有鍵

keys方法用于獲取所有鍵。

grades.keys()dict_keys(['John', 'Emily', 'Betty', 'Mike', 'Ashley'])

返回對象是dict_keys對象,它是iterable類型。因此,我們可以在for循環(huán)中迭代它。

類似地,values方法返回所有值。

grades.values()dict_values(['A', 'A+', 'B', 'C', 'A'])

我們不能對dict_keys 或dict_values進(jìn)行索引操作,但我們可以將它們轉(zhuǎn)換為一個(gè)列表,然后使用索引。

list(grades.values())[0] 'A'

items方法返回鍵值對。

grades.items()dict_items([('John', 'A'), ('Emily', 'A+'), ('Betty', 'B'), ('Mike', 'C'), ('Ashley', 'A')])

4.更新或添加項(xiàng)

字典是可變的,所以我們可以更新、添加或刪除條目。更新或添加項(xiàng)的語法是相同的。如果字典中存在給定的鍵,則更新現(xiàn)有項(xiàng)的值。否則,將創(chuàng)建一個(gè)新項(xiàng)(即鍵值對)。

grades['Edward'] = 'B+' grades['John'] = 'B'grades {'Ashley': 'A','Betty': 'B','Edward': 'B+','Emily': 'A+','John': 'B','Mike': 'C'}

5.使用新字典更新

我們也可以將字典傳遞給update函數(shù)。字典將根據(jù)新字典中的項(xiàng)進(jìn)行更新。舉個(gè)例子會更清楚。

考慮以下字典:

grades = {'John':'A', 'Emily':'A+', 'Betty':'B', 'Mike':'C'} grades_new = {'John':'B', 'Sam':'A', 'Betty':'A'}

如果我們根據(jù)grades_new更新grades ,John和Betty的值也會更新。此外,還將添加新項(xiàng)(‘Sam’:‘a(chǎn)’)。

grades.update(grades_new)grades {'Betty': 'A', 'Emily': 'A+', 'John': 'B', 'Mike': 'C', 'Sam': 'A'}

6.刪除項(xiàng)

我們可以使用del或pop函數(shù)刪除項(xiàng)。我們只傳遞要?jiǎng)h除的項(xiàng)的鍵。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' del(grades['Edward'])grades.pop('Ashley') 'A'grades 'Betty': 'B', 'Emily': 'A+', 'John': 'B', 'Mike': 'C'}

與del函數(shù)不同,pop函數(shù)返回已刪除項(xiàng)的值。因此,我們可以選擇將其分配給一個(gè)變量。

7.字典作為iterable

我們可以迭代字典。默認(rèn)情況下,迭代基于鍵。

for i in grades:print(i)John Emily Betty Mike

我們也可以對值進(jìn)行迭代(grades.values()或grades.items()).

8.字典生成式

它類似于列表生成式。字典生成式是一種基于iterables的字典創(chuàng)建方法。

{x: x**2 for x in range(5)} {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}{word: len(word) for word in ['data','science','is','awesome']} {'awesome': 7, 'data': 4, 'is': 2, 'science': 7}

iterable中的元素成為字典的鍵。這些值是根據(jù)字典生成式中的賦值確定的。

9.從列表創(chuàng)建字典

我們可以使用列表或元組列表創(chuàng)建字典。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' a = [['A',4], ['B',5], ['C',11]]dict(a) {'A': 4, 'B': 5, 'C': 11}b = [('A',4), ('B',5), ('C',11)]dict(b) {'A': 4, 'B': 5, 'C': 11}

10.從字典到數(shù)據(jù)幀

Pandas的dataframe函數(shù)可用于使用字典創(chuàng)建數(shù)據(jù)幀。鍵變成列名,值變成行。

到目前為止,我們已經(jīng)用值為字符串的字典做了一些示例。但是,字典中的值可以是任何類型,例如列表、numpy數(shù)組、其他字典等等。

在從字典創(chuàng)建數(shù)據(jù)幀的情況下,值由數(shù)組組成(例如list、numpy array)。

import numpy as np import pandas as pddict_a = {'names':['Amber','John','Edward','Emily'],'points':np.random.randint(100, size=4)}df = pd.DataFrame(dict_a) df


11.len和clear

len函數(shù)返回字典中的項(xiàng)數(shù)(即長度)。clear方法用于刪除字典中的所有項(xiàng),因此我們將得到一個(gè)空字典。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' len(grades) 4grades.clear()len(grades) 0

12.復(fù)制字典

grades = {'John':'A', 'Emily':'A+', 'Betty':'B'}dict1 = gradesdict2 = grades.copy()dict3 = dict(grades)

所有dict1、dict2和dict3都包含與分?jǐn)?shù)完全相同的鍵值對。然而,dict1只是一個(gè)指向grades的指針。因此,grades的任何變化也會改變dict1。

dict2和dict3是內(nèi)存中獨(dú)立的對象,因此它們不會受到grades變化的影響。

我們需要特別注意我們?nèi)绾螐?fù)制字典。

好處:使用python3.9合并和更新操作符

Python3.9為字典提供了merge(“|”)和update(“|=”)運(yùn)算符。我還沒有安裝Python 3.9,所以我將使用Python文檔中的示例:

>>> x = {"key1": "value1 from x", "key2": "value2 from x"} >>> y = {"key2": "value2 from y", "key3": "value3 from y"} >>> x | y {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'} >>> y | x {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

字典是Python中非常重要的數(shù)據(jù)結(jié)構(gòu),在許多情況下都會用到。我們在這篇文章中所做的例子將涵蓋你需要了解的字典的大部分內(nèi)容。

總結(jié)

以上是生活随笔為你收集整理的掌握Python字典的12个例子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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