最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從增刪改查到遍歷嵌套詳解Python中字典操作的完全指南

 更新時(shí)間:2026年04月12日 09:49:06   作者:鄭恩賜  
本文面向零基礎(chǔ),系統(tǒng)講解了 Python 字典(Dictionary)核心操作:增刪改查、遍歷、嵌套,通過(guò)生活化比喻與實(shí)戰(zhàn)對(duì)比,掌握字典的高效操作方法,快速提升編程能力

1. 前置知識(shí)點(diǎn) 

我們?cè)谏钊雽W(xué)習(xí) Python 字典之前,需要先了解以下基礎(chǔ)概念:

  • 變量(variable):用于存儲(chǔ)數(shù)據(jù)的容器,就像生活中的 盒子,可以在里面存放不同的物品
  • 數(shù)據(jù)類型(data type):Python 中的基本數(shù)據(jù)類型包括整數(shù)、浮點(diǎn)數(shù)、字符串等
  • 鍵值對(duì)(key-value pair):一種數(shù)據(jù)結(jié)構(gòu),由唯一的鍵(key)和對(duì)應(yīng)的值(value)組成
  • 哈希表(hash table):字典的底層數(shù)據(jù)結(jié)構(gòu),提供快速的查找性能

學(xué)習(xí)建議:我們需要掌握了 Python 變量和基本數(shù)據(jù)類型后,就可以開始學(xué)習(xí)字典了。字典是 Python 最常用的數(shù)據(jù)結(jié)構(gòu)之一,是后續(xù)學(xué)習(xí) JSON、API 響應(yīng)處理等內(nèi)容的基礎(chǔ)。

2. 什么是字典(Dictionary)

我們接下來(lái)要學(xué)習(xí)的字典(Dictionary)是 Python 中最核心的映射類型數(shù)據(jù)結(jié)構(gòu) ,它以 鍵值對(duì)(key-value pairs) 的形式存儲(chǔ)數(shù)據(jù),提供高效的查找能力 。我們可以把它想象成生活中的 通訊錄 ——通過(guò)姓名(鍵)快速找到對(duì)應(yīng)的電話號(hào)碼(值),而不是像列表那樣需要記住電話號(hào)碼在第幾位。

2.1 字典的核心特點(diǎn) 

我們需要掌握字典的幾個(gè)重要特點(diǎn):

  • 鍵值對(duì)結(jié)構(gòu):每個(gè)元素都是一個(gè)鍵值對(duì),由唯一的鍵(key)和對(duì)應(yīng)的值(value)組成
  • 通過(guò)鍵訪問:我們使用鍵來(lái)存取值,而不是通過(guò)位置索引(如列表的 0、1、2)
  • 可變性:字典是可變的,我們可以隨時(shí)添加、修改或刪除鍵值對(duì)
  • 無(wú)序性:字典中的元素沒有固定的順序(Python 3.7+ 保持插入順序,但邏輯上仍視為無(wú)序)
  • 鍵的唯一性:字典中的鍵必須是唯一的,不能重復(fù)
  • 鍵的可哈希性:作為字典的鍵,必須是可哈希(hashable)的類型

什么是可哈希(Hashable)

我們?cè)谑褂米值鋾r(shí),需要注意一個(gè)重要概念:可哈希(hashable)??晒J侵敢粋€(gè)對(duì)象在它的生命周期內(nèi),哈希值(hash value)是固定的。Python 使用哈希值來(lái)快速查找字典中的鍵,所以我們需要使用可哈希的對(duì)象作為字典的鍵。

可哈希的類型(可以作為字典的鍵)

我們需要知道,以下類型是可以作為字典的鍵的:

類型說(shuō)明示例
整數(shù)(int)數(shù)字類型都是可哈希的1, 100, -5
浮點(diǎn)數(shù)(float)浮點(diǎn)數(shù)也是可哈希的3.14, 2.5
字符串(str)字符串是不可變的,所以可哈希"name", "key1"
布爾值(bool)True 和 False 都是可哈希的True, False
元組(tuple)元組是不可變的,但要求其中的元素也必須可哈希(原因見下文)(1, 2), ("a", "b") 
frozenset凍結(jié)集合,不可變的集合frozenset([1, 2, 3])

為什么元組內(nèi)的元素也必須是可哈希的?

雖然元組本身是不可變的,但 Python 在計(jì)算元組的哈希值時(shí),會(huì)遞歸地計(jì)算元組內(nèi)所有元素的哈希值。如果元組內(nèi)包含不可哈希的元素(比如列表),Python 就無(wú)法計(jì)算整個(gè)元組的哈希值,因此這個(gè)元組就不能作為字典的鍵。我們需要注意這一點(diǎn)。

舉個(gè)例子

# ? 合法:元組內(nèi)所有元素都是可哈希的
locations = {
    (35.68, 139.69): "東京",  # 元組內(nèi)是兩個(gè)浮點(diǎn)數(shù)
    (40.71, -74.01): "紐約"   # 元組內(nèi)是兩個(gè)浮點(diǎn)數(shù)
}

# ? 非法:元組內(nèi)包含列表(不可哈希)
locations = {
    ([35.68, 139.69]): "東京"  # TypeError: unhashable type: 'list'
}

原理:字典使用哈希表來(lái)存儲(chǔ)鍵值對(duì),當(dāng)添加一個(gè)鍵時(shí),Python 會(huì)先計(jì)算這個(gè)鍵的哈希值,然后根據(jù)哈希值確定存儲(chǔ)位置。如果鍵本身或它的任何組成部分是可變的,哈希值就可能改變,這會(huì)導(dǎo)致字典無(wú)法正確找到對(duì)應(yīng)的值。

不可哈希的類型(不能作為字典的鍵)

我們需要避免使用以下類型作為字典的鍵:

類型原因示例
列表(list)列表是可變的,內(nèi)容可能改變[1, 2, 3] ?
字典(dict)字典是可變的{"a": 1} ?
集合(set)集合是可變的{1, 2, 3} ?
包含可變?cè)氐脑M元組中包含不可哈希的元素(1, [2, 3]) ?

如何判斷對(duì)象是否可哈希

我們?cè)趯?shí)際使用中,可以通過(guò)以下方法判斷對(duì)象是否可哈希:

# 方法1:使用 hash() 函數(shù)
print(hash("hello"))  # ? 可以,輸出哈希值
print(hash([1, 2, 3]))  # ? TypeError: unhashable type: 'list'

# 方法2:使用 isinstance() 檢查
from collections.abc import Hashable
print(isinstance("hello", Hashable))  # ? True
print(isinstance([1, 2, 3], Hashable))  # ? False

2.2 字典 vs 列表對(duì)比

我們?cè)谶x擇數(shù)據(jù)結(jié)構(gòu)時(shí),需要了解字典和列表的區(qū)別:

特性字典(dict)列表(list)
數(shù)據(jù)結(jié)構(gòu)鍵值對(duì)(key-value)有序序列
訪問方式通過(guò)鍵訪問通過(guò)索引訪問
有序性無(wú)序(Python 3.7+保持插入順序)有序
查找性能O(1) 常量時(shí)間O(n) 線性時(shí)間
適用場(chǎng)景快速查找、映射關(guān)系順序存儲(chǔ)、遍歷

2.3 實(shí)際應(yīng)用場(chǎng)景 

我們?cè)趯?shí)際開發(fā)中經(jīng)常會(huì)用到字典,以下是常見的應(yīng)用場(chǎng)景:

  • 快速查詢:字典提供 O(1) 的平均時(shí)間復(fù)雜度進(jìn)行查找操作,比列表的 O(n) 快得多。比如查字典、查用戶信息、查配置項(xiàng)等
  • 用戶信息存儲(chǔ):用用戶名作為鍵,存儲(chǔ)用戶的年齡、郵箱等信息
  • 配置項(xiàng)管理:用配置名稱作為鍵,存儲(chǔ)對(duì)應(yīng)的配置值
  • 計(jì)數(shù)統(tǒng)計(jì):統(tǒng)計(jì)單詞出現(xiàn)次數(shù)、商品銷量等
  • JSON 數(shù)據(jù)處理:JSON 對(duì)象在 Python 中就是字典類型

學(xué)習(xí)建議:我們需要掌握字典是 Python 最常用的數(shù)據(jù)結(jié)構(gòu)之一,它能讓我們的代碼更高效、更易讀。接下來(lái)我們將學(xué)習(xí)如何創(chuàng)建字典。

3. 字典創(chuàng)建(dict creation)

我們?cè)谇懊媪私饬俗值涞母拍?,現(xiàn)在來(lái)學(xué)習(xí)如何創(chuàng)建字典。字典可以通過(guò)多種方式創(chuàng)建,選擇合適的方法能讓代碼更簡(jiǎn)潔、更高效。本章我們將學(xué)習(xí)三種主要的創(chuàng)建方式。

3.1 基本創(chuàng)建方式 

使用花括號(hào){}創(chuàng)建

使用花括號(hào) {} 是創(chuàng)建字典最直接、最常用的方式。在花括號(hào)內(nèi),使用冒號(hào) : 分隔鍵和值,多個(gè)鍵值對(duì)之間用逗號(hào) , 分隔。

# 創(chuàng)建空字典
empty_dict = {}

# 創(chuàng)建帶初始值的字典
student = {
    "name": "張三",
    "age": 18,
    "score": 95
}
print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95}

特點(diǎn)

  • 語(yǔ)法簡(jiǎn)潔直觀
  • 適合創(chuàng)建時(shí)已知所有鍵值對(duì)的場(chǎng)景
  • 花括號(hào)是字典的標(biāo)志性符號(hào),一眼就能識(shí)別

使用 dict() 構(gòu)造函數(shù)創(chuàng)建

dict() 是 Python 的內(nèi)置構(gòu)造函數(shù),提供了另一種創(chuàng)建字典的方式。

# 創(chuàng)建空字典
empty_dict = dict()

# 使用關(guān)鍵字參數(shù)創(chuàng)建
student = dict(name="李四", age=20, score=88)
print(student)  # 輸出: {'name': '李四', 'age': 20, 'score': 88}

# 從鍵值對(duì)序列創(chuàng)建
pairs = [("name", "王五"), ("age", 22), ("score", 92)]
student = dict(pairs)
print(student)  # 輸出: {'name': '王五', 'age': 22, 'score': 92}

# 從另一個(gè)字典創(chuàng)建
original = {"a": 1, "b": 2}
copy_dict = dict(original)
print(copy_dict)  # 輸出: {'a': 1, 'b': 2}

特點(diǎn)

  • 適合從其他數(shù)據(jù)結(jié)構(gòu)(如列表、元組)轉(zhuǎn)換而來(lái)
  • 使用關(guān)鍵字參數(shù)時(shí),鍵必須是字符串
  • 可以從現(xiàn)有的字典復(fù)制創(chuàng)建新字典

使用 fromkeys() 方法創(chuàng)建

fromkeys()dict 類的類方法,用于創(chuàng)建一個(gè)新字典,將所有鍵設(shè)置為相同的默認(rèn)值。

# 創(chuàng)建所有鍵值都為 None 的字典
keys = ["name", "age", "score"]
student = dict.fromkeys(keys)
print(student)  # 輸出: {'name': None, 'age': None, 'score': None}

# 創(chuàng)建所有鍵值都為指定默認(rèn)值的字典
student = dict.fromkeys(keys, 0)
print(student)  # 輸出: {'name': 0, 'age': 0, 'score': 0}

特點(diǎn)

  • 適合需要初始化多個(gè)鍵為相同默認(rèn)值的場(chǎng)景
  • 如果不指定默認(rèn)值,默認(rèn)為 None
  • 所有鍵共享同一個(gè)默認(rèn)值對(duì)象(注意可變對(duì)象的引用問題)

字典創(chuàng)建方式對(duì)比

創(chuàng)建方式適用場(chǎng)景優(yōu)點(diǎn)缺點(diǎn)
{}已知所有鍵值對(duì)語(yǔ)法簡(jiǎn)潔、性能好鍵必須是字面量
dict()從其他數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換靈活、可讀性好語(yǔ)法稍復(fù)雜
fromkeys()初始化多個(gè)鍵為相同值簡(jiǎn)潔高效所有鍵值相同

3.2 字典推導(dǎo)式創(chuàng)建

字典推導(dǎo)式(Dictionary Comprehension)是 Python 中一種簡(jiǎn)潔高效的語(yǔ)法結(jié)構(gòu),用于通過(guò)表達(dá)式快速生成字典 ??。它將"遍歷、計(jì)算與構(gòu)造"濃縮成一行表達(dá)式,是 Pythonic 代碼的代表寫法之一。

基本語(yǔ)法

字典推導(dǎo)式的基本語(yǔ)法如下:

{key: value for item in iterable}
  • key:生成字典的鍵
  • value:生成字典的值
  • item:遍歷的元素
  • iterable:可迭代對(duì)象

基礎(chǔ)示例

# 示例1:從列表創(chuàng)建字典(鍵為數(shù),值為數(shù)的平方)
squares = {x: x**2 for x in range(5)}
print(squares)  # 輸出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

# 示例2:將兩個(gè)列表組合成字典
keys = ["name", "age", "city"]
values = ["張三", 25, "北京"]
person = dict(zip(keys, values))
print(person)  # 輸出: {'name': '張三', 'age': 25, 'city': '北京'}

# 示例3:將字符串轉(zhuǎn)換為字符計(jì)數(shù)字典
word = "hello"
char_count = {char: word.count(char) for char in word}
print(char_count)  # 輸出: {'h': 1, 'e': 1, 'l': 2, 'o': 1}

帶條件的字典推導(dǎo)式

可以在推導(dǎo)式中添加條件來(lái)過(guò)濾元素:

# 示例1:只保留偶數(shù)的平方
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
print(even_squares)  # 輸出: {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

# 示例2:根據(jù)條件轉(zhuǎn)換數(shù)據(jù)
scores = {"語(yǔ)文": 85, "數(shù)學(xué)": 92, "英語(yǔ)": 78, "物理": 90}
pass_scores = {subject: score for subject, score in scores.items() if score >= 80}
print(pass_scores)  # 輸出: {'語(yǔ)文': 85, '數(shù)學(xué)': 92, '物理': 90}

復(fù)雜的字典推導(dǎo)式

# 示例1:嵌套循環(huán)創(chuàng)建字典
pairs = {(x, y): x + y for x in range(3) for y in range(3)}
print(pairs)  # 輸出: {(0, 0): 0, (0, 1): 1, (0, 2): 2, (1, 0): 1, ...}

# 示例2:使用條件表達(dá)式(三元運(yùn)算符)
numbers = [1, 2, 3, 4, 5]
label = {n: "偶數(shù)" if n % 2 == 0 else "奇數(shù)" for n in numbers}
print(label)  # 輸出: {1: '奇數(shù)', 2: '偶數(shù)', 3: '奇數(shù)', 4: '偶數(shù)', 5: '奇數(shù)'}

# 示例3:從字典推導(dǎo)新字典
original = {"a": 1, "b": 2, "c": 3}
doubled = {k: v * 2 for k, v in original.items()}
print(doubled)  # 輸出: {'a': 2, 'b': 4, 'c': 6}

字典推導(dǎo)式 vs 傳統(tǒng)循環(huán)對(duì)比

寫法示例優(yōu)點(diǎn)
字典推導(dǎo)式{x: x**2 for x in range(5)}簡(jiǎn)潔、可讀性好、性能好
傳統(tǒng)循環(huán)squares = {} + for x in range(5): + squares[x] = x**2易于理解、適合復(fù)雜邏輯

學(xué)習(xí)建議:字典推導(dǎo)式是 Python 的特色語(yǔ)法,建議熟練掌握。它的語(yǔ)法和列表推導(dǎo)式類似,學(xué)會(huì)一個(gè)就能輕松上手另一個(gè)。

4. 字典查詢(finding elements)

我們?cè)谇懊鎸W(xué)習(xí)了如何創(chuàng)建字典,現(xiàn)在來(lái)學(xué)習(xí)如何查詢字典中的數(shù)據(jù)。字典的查詢操作是使用字典的核心目的。字典之所以高效,正是因?yàn)樗梢酝ㄟ^(guò)鍵快速找到對(duì)應(yīng)的值,而不需要像列表那樣遍歷查找。本章我們將學(xué)習(xí)字典的幾種查詢方式。

4.1 通過(guò)鍵獲取值

最直接的查詢方式是使用方括號(hào) [] 加鍵名來(lái)獲取對(duì)應(yīng)的值。

# 創(chuàng)建字典
student = {"name": "張三", "age": 18, "score": 95}

# 通過(guò)鍵獲取值
print(student["name"])  # 輸出: 張三
print(student["age"])   # 輸出: 18
print(student["score"])  # 輸出: 95

注意:如果鍵不存在,使用 [] 會(huì)拋出 KeyError 異常。

# 鍵不存在時(shí),會(huì)報(bào)錯(cuò)
print(student["gender"])  # ? KeyError: 'gender'

4.2 get() 方法

為了避免 KeyError 異常,字典提供了 get() 方法。當(dāng)鍵不存在時(shí),它會(huì)返回 None(或者指定的默認(rèn)值),而不是拋出異常。

student = {"name": "張三", "age": 18, "score": 95}

# 使用 get() 方法獲取值
print(student.get("name"))    # 輸出: 張三
print(student.get("gender"))  # 輸出: None(鍵不存在)

# 指定默認(rèn)值
print(student.get("gender", "未知"))  # 輸出: 未知

get() 方法的特點(diǎn):

  • 如果鍵存在,返回對(duì)應(yīng)的值
  • 如果鍵不存在,返回 None(或指定的默認(rèn)值)
  • 不會(huì)拋出異常,代碼更安全

使用場(chǎng)景建議

  • 不確定鍵是否存在時(shí),使用 get() 方法
  • 需要設(shè)置默認(rèn)值時(shí),使用 get(key, default)

4.3 keys()、values()、items() 方法

這三個(gè)方法用于獲取字典的不同視圖(view),方便遍歷和操作字典。

student = {"name": "張三", "age": 18, "score": 95}

# keys():獲取所有鍵
print(student.keys())   # 輸出: dict_keys(['name', 'age', 'score'])

# values():獲取所有值
print(student.values()) # 輸出: dict_values(['張三', 18, 95])

# items():獲取所有鍵值對(duì)
print(student.items())  # 輸出: dict_items([('name', '張三'), ('age', 18), ('score', 95)])

遍歷示例

# 遍歷所有鍵
for key in student.keys():
    print(key)

# 遍歷所有值
for value in student.values():
    print(value)

# 遍歷所有鍵值對(duì)
for key, value in student.items():
    print(f"{key}: {value}")

特點(diǎn)說(shuō)明

  • 返回的是視圖對(duì)象,不是列表
  • 視圖是動(dòng)態(tài)的:字典改變,視圖也會(huì)跟著變
  • 如果需要列表,可以手動(dòng)轉(zhuǎn)換:list(student.keys())

4.4 in 和 not in 運(yùn)算符

在 Python 中,可以使用 innot in 運(yùn)算符來(lái)檢查鍵是否存在于字典中。這是 Python 官方推薦的檢測(cè)方式,時(shí)間復(fù)雜度為 O(1)。

student = {"name": "張三", "age": 18, "score": 95}

# 檢查鍵是否存在
print("name" in student)     # 輸出: True
print("gender" in student)   # 輸出: False

# 檢查鍵是否不存在
print("gender" not in student)  # 輸出: True

實(shí)際應(yīng)用

# 場(chǎng)景1:先檢查再獲?。ū苊?KeyError)
if "gender" in student:
    print(student["gender"])
else:
    print("性別未知")

# 場(chǎng)景2:條件判斷
if "score" in student and student["score"] >= 60:
    print("考試及格")
else:
    print("需要補(bǔ)考")

in vs get() 對(duì)比:

方法適用場(chǎng)景返回值
in只檢查鍵是否存在布爾值
get()檢查并獲取值值或默認(rèn)值

學(xué)習(xí)建議:在實(shí)際開發(fā)中,如果只是檢查鍵是否存在,用 in;如果需要獲取值,用 get() 更安全。

5. 字典增加(adding elements)

我們?cè)谇懊鎸W(xué)習(xí)了如何查詢字典,現(xiàn)在來(lái)學(xué)習(xí)如何向字典中添加新元素。

5.1 直接賦值添加

向字典中添加元素最簡(jiǎn)單的方式是直接通過(guò)鍵賦值。如果鍵不存在,就會(huì)添加新的鍵值對(duì);如果鍵已存在,則會(huì)更新值。

# 創(chuàng)建空字典
student = {}

# 添加單個(gè)鍵值對(duì)
student["name"] = "張三"
student["age"] = 18
student["score"] = 95

print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95}

# 多次賦值可以繼續(xù)添加
student["city"] = "北京"
print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95, 'city': '北京'}

注意:如果鍵已存在,直接賦值會(huì)覆蓋原來(lái)的值(這屬于修改操作,見第6章)。

特點(diǎn)

  • 語(yǔ)法簡(jiǎn)潔,一目了然
  • 適合逐個(gè)添加鍵值對(duì)
  • 鍵不存在則添加,鍵存在則覆蓋

5.2 setdefault() 方法

setdefault() 方法用于設(shè)置字典的默認(rèn)值。如果鍵不存在,它會(huì)添加鍵并設(shè)置默認(rèn)值;如果鍵已存在,則保持原有值不變。

student = {"name": "張三", "age": 18}

# 鍵不存在,添加新鍵值對(duì)
result = student.setdefault("score", 95)
print(result)        # 輸出: 95(返回設(shè)置的值)
print(student)       # 輸出: {'name': '張三', 'age': 18, 'score': 95}

# 鍵已存在,不改變?cè)兄?
result = student.setdefault("name", "李四")
print(result)        # 輸出: 張三(返回原有值)
print(student)       # 輸出: {'name': '張三', 'age': 18, 'score': 95}(name 未被修改)

# 只傳一個(gè)參數(shù)時(shí),默認(rèn)值為 None
student.setdefault("address")
print(student)       # 輸出: {'name': '張三', 'age': 18, 'score': 95, 'address': None}

setdefault() 的特點(diǎn):

  • 如果鍵不存在,添加鍵并設(shè)置默認(rèn)值
  • 如果鍵已存在,返回原有值,不修改字典
  • 適合用于初始化字典,確保某個(gè)鍵有默認(rèn)值

實(shí)際應(yīng)用場(chǎng)景

# 場(chǎng)景1:統(tǒng)計(jì)水果出現(xiàn)次數(shù)
fruits = ["蘋果", "香蕉", "蘋果", "橙子", "香蕉", "蘋果"]
count = {}

for fruit in fruits:
    count.setdefault(fruit, 0)  # 如果鍵不存在,初始化為 0
    count[fruit] += 1          # 然后加 1

print(count)  # 輸出: {'蘋果': 3, '香蕉': 2, '橙子': 1}

# 場(chǎng)景2:分組數(shù)據(jù)
students = [
    {"name": "張三", "class": "A"},
    {"name": "李四", "class": "B"},
    {"name": "王五", "class": "A"}
]

groups = {}
for student in students:
    cls = student["class"]
    groups.setdefault(cls, []).append(student["name"])

print(groups)  # 輸出: {'A': ['張三', '王五'], 'B': ['李四']}

5.3 update() 方法

update() 方法用于將另一個(gè)字典或鍵值對(duì)序列合并到當(dāng)前字典中。它可以一次性添加多個(gè)鍵值對(duì),非常適合批量更新字典。

student = {"name": "張三", "age": 18}

# 使用字典更新
student.update({"score": 95, "city": "北京"})
print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95, 'city': '北京'}

# 使用關(guān)鍵字參數(shù)更新
student.update(grade="A", status="active")
print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95, 'city': '北京', 'grade': 'A', 'status': 'active'}

# 使用鍵值對(duì)序列更新(列表、元組均可)
pairs = [("gender", "男"), ("height", 175)]
student.update(pairs)
print(student)  # 輸出: {'name': '張三', 'age': 18, 'score': 95, 'city': '北京', 'grade': 'A', 'status': 'active', 'gender': '男', 'height': 175}

# update() 也會(huì)覆蓋已存在的鍵
student.update({"age": 20, "name": "李四"})
print(student)  # 輸出: {'name': '李四', 'age': 20, 'score': 95, ...}

update() 的特點(diǎn):

  • 可以一次性添加或更新多個(gè)鍵值對(duì)
  • 如果鍵已存在,會(huì)覆蓋原有的值
  • 支持多種參數(shù)形式:字典、關(guān)鍵字參數(shù)、鍵值對(duì)序列

對(duì)比總結(jié)

方法適用場(chǎng)景鍵存在時(shí)的行為
dict[key] = value添加或修改單個(gè)鍵值對(duì)覆蓋原有值
setdefault(key, value)確保鍵有默認(rèn)值不改變?cè)兄?/td>
update({...})批量添加或修改覆蓋原有值

6. 字典修改(modifying elements)

我們?cè)谇懊鎸W(xué)習(xí)了如何添加元素,現(xiàn)在來(lái)學(xué)習(xí)如何修改字典中已有的值。

6.1 通過(guò)鍵修改值 

字典的值可以通過(guò)鍵直接修改。直接賦值時(shí),如果鍵存在,則更新值;如果鍵不存在,則添加新鍵值對(duì)(在第五章中我們學(xué)過(guò),鍵不存在時(shí)就是添加)。

student = {"name": "張三", "age": 18, "score": 95}

# 修改已存在的鍵的值
student["age"] = 20
student["score"] = 88

print(student)  # 輸出: {'name': '張三', 'age': 20, 'score': 88}

注意:這里的"修改"和"添加"使用的是同樣的語(yǔ)法,區(qū)別在于鍵是否存在:

  • 鍵不存在 → 添加新鍵值對(duì)
  • 鍵已存在 → 修改原有值

修改嵌套字典中的值

# 嵌套字典
user = {
    "name": "張三",
    "profile": {
        "email": "zhangsan@example.com",
        "age": 18
    }
}

# 修改嵌套字典中的值
user["profile"]["age"] = 20
user["profile"]["email"] = "new_email@example.com"

print(user)
# 輸出: {'name': '張三', 'profile': {'email': 'new_email@example.com', 'age': 20}}

6.2 update() 方法修改

update() 方法不僅可以添加元素(第五章學(xué)過(guò)),還可以用來(lái)修改元素。當(dāng)提供的鍵在字典中已存在時(shí),就會(huì)覆蓋原來(lái)的值。

student = {"name": "張三", "age": 18, "score": 95}

# 使用字典修改多個(gè)值
student.update({"age": 20, "score": 88})

print(student)  # 輸出: {'name': '張三', 'age': 20, 'score': 88}

# 使用關(guān)鍵字參數(shù)修改
student.update(age=22, status="graduated")

print(student)  # 輸出: {'name': '張三', 'age': 22, 'score': 88, 'status': 'graduated'}

對(duì)比總結(jié)

方法適用場(chǎng)景鍵不存在時(shí)的行為
dict[key] = value修改單個(gè)值添加新鍵值對(duì)
update({key: value})批量修改多個(gè)值添加新鍵值對(duì)

學(xué)習(xí)建議:字典的"增"和"改"使用相同的語(yǔ)法(直接賦值或 update),區(qū)別在于鍵是否已存在。理解這一點(diǎn),就掌握了字典操作的核心邏輯。

7. 字典刪除(removing elements)

我們?cè)谇懊鎸W(xué)習(xí)了如何添加和修改字典,現(xiàn)在來(lái)學(xué)習(xí)如何刪除字典中的元素。

7.1 pop() 方法 

pop() 方法用于刪除指定鍵的鍵值對(duì),并返回對(duì)應(yīng)的值。如果鍵不存在,會(huì)拋出 KeyError 異常。

student = {"name": "張三", "age": 18, "score": 95}

# 刪除鍵值對(duì),并獲取被刪除的值
removed_value = student.pop("age")
print(removed_value)  # 輸出: 18
print(student)       # 輸出: {'name': '張三', 'score': 95}

# 鍵不存在時(shí),會(huì)拋出 KeyError
# student.pop("gender")  # ? KeyError: 'gender'

# 可以設(shè)置默認(rèn)值,避免異常
removed_value = student.pop("gender", None)
print(removed_value)  # 輸出: None(鍵不存在,返回默認(rèn)值)

pop() 的特點(diǎn):

  • 刪除指定鍵的鍵值對(duì)
  • 返回被刪除的值
  • 鍵不存在時(shí)拋出異常(可以設(shè)置默認(rèn)值避免)

使用場(chǎng)景:當(dāng)你需要?jiǎng)h除某個(gè)鍵值對(duì),同時(shí)可能需要用到被刪除的值時(shí),使用 pop() 最合適。

7.2 popitem() 方法 

popitem() 方法用于刪除字典中最后一個(gè)鍵值對(duì)(Python 3.7+),并以元組形式返回刪除的鍵和值。在 Python 3.7 之前,字典是無(wú)序的,刪除的是任意鍵值對(duì)。

student = {"name": "張三", "age": 18, "score": 95}

# 刪除最后一個(gè)鍵值對(duì)
removed = student.popitem()
print(removed)   # 輸出: ('score', 95)(返回鍵值對(duì)元組)
print(student)   # 輸出: {'name': '張三', 'age': 18}

# 繼續(xù)刪除
removed = student.popitem()
print(removed)   # 輸出: ('age', 18)
print(student)   # 輸出: {'name': '張三'}

# 字典為空時(shí),拋出 KeyError
# student.popitem()  # ? KeyError: 'popitem(): dictionary is empty'

popitem() 的特點(diǎn):

  • 刪除并返回最后一個(gè)鍵值對(duì)(以元組形式)
  • Python 3.7+ 保證刪除順序與插入順序一致
  • 字典為空時(shí)拋出 KeyError

使用場(chǎng)景

  • 想要按插入順序刪除鍵值對(duì)時(shí)
  • 實(shí)現(xiàn) LRU 緩存(最近最少使用)等數(shù)據(jù)結(jié)構(gòu)時(shí)

7.3 del 語(yǔ)句

del 語(yǔ)句用于刪除字典中指定鍵的鍵值對(duì),或者刪除整個(gè)字典。

student = {"name": "張三", "age": 18, "score": 95}

# 刪除指定的鍵值對(duì)
del student["age"]
print(student)  # 輸出: {'name': '張三', 'score': 95}

# 刪除不存在的鍵會(huì)拋出異常
# del student["gender"]  # ? KeyError: 'gender'

# 刪除整個(gè)字典
del student
# print(student)  # ? NameError: name 'student' is not defined

del 的特點(diǎn):

  • 刪除指定鍵的鍵值對(duì)
  • 可以刪除整個(gè)字典
  • 鍵不存在時(shí)拋出 KeyError

使用場(chǎng)景

  • 明確知道要?jiǎng)h除某個(gè)鍵值對(duì)
  • 需要完全刪除字典變量時(shí)

7.4 clear() 方法 

clear() 方法用于清空字典中的所有鍵值對(duì),使字典變?yōu)榭兆值洹Ec del 不同的是,clear() 只刪除字典中的內(nèi)容,字典變量本身仍然存在。

student = {"name": "張三", "age": 18, "score": 95}

# 清空字典
student.clear()
print(student)  # 輸出: {}(空字典)
print(len(student))  # 輸出: 0

# 字典變量仍然存在,可以繼續(xù)使用
student["name"] = "李四"
print(student)  # 輸出: {'name': '李四'}

clear() 的特點(diǎn):

  • 刪除字典中所有鍵值對(duì)
  • 字典變?yōu)榭兆值?{}
  • 字典變量本身仍然存在

對(duì)比總結(jié)

方法/語(yǔ)句刪除內(nèi)容返回值鍵不存在時(shí)
pop(key)指定鍵的鍵值對(duì)返回被刪除的值拋出 KeyError
popitem()最后一個(gè)鍵值對(duì)返回鍵值對(duì)元組拋出 KeyError
del dict[key]指定鍵的鍵值對(duì)無(wú)返回值拋出 KeyError
clear()所有鍵值對(duì)無(wú)返回值不報(bào)錯(cuò)

學(xué)習(xí)建議:刪除操作要小心,特別是 del 語(yǔ)句會(huì)直接刪除變量。如果不確定鍵是否存在,我們可以使用 pop(key, default) 設(shè)置默認(rèn)值,避免異常。

8. 字典遍歷(traversing)

我們?cè)谇懊鎸W(xué)習(xí)了字典的增刪改查操作,現(xiàn)在來(lái)學(xué)習(xí)如何遍歷字典中的所有數(shù)據(jù)。

8.1 遍歷鍵

遍歷字典的鍵是最常見的操作之一??梢灾苯颖闅v字典(默認(rèn)遍歷的就是鍵),也可以使用 keys() 方法明確指定遍歷鍵。

student = {"name": "張三", "age": 18, "score": 95, "city": "北京"}

# 方法1:直接遍歷字典(默認(rèn)遍歷鍵)
for key in student:
    print(key)
# 輸出:
# name
# age
# score
# city

# 方法2:使用 keys() 方法
for key in student.keys():
    print(key)
# 輸出同上

# 在需要明確語(yǔ)義時(shí),使用 keys() 更清晰
print("學(xué)生信息包含以下字段:")
for key in student.keys():
    print(f"  - {key}")

使用場(chǎng)景

  • 只關(guān)心有哪些鍵(字段名)
  • 需要判斷某個(gè)鍵是否存在(結(jié)合 in 運(yùn)算符)

8.2 遍歷值

如果只關(guān)心字典中的值,可以使用 values() 方法進(jìn)行遍歷。

student = {"name": "張三", "age": 18, "score": 95, "city": "北京"}

# 遍歷所有值
for value in student.values():
    print(value)
# 輸出:
# 張三
# 18
# 95
# 北京

# 實(shí)際應(yīng)用:計(jì)算平均分
scores = {"語(yǔ)文": 85, "數(shù)學(xué)": 92, "英語(yǔ)": 78, "物理": 90}
total = sum(scores.values())
count = len(scores)
average = total / count
print(f"平均分: {average}")  # 輸出: 平均分: 86.25

# 找出最高分
max_score = max(scores.values())
print(f"最高分: {max_score}")  # 輸出: 最高分: 92

使用場(chǎng)景

  • 只關(guān)心值,不需要鍵
  • 統(tǒng)計(jì)、計(jì)算類操作(如求和、平均值、最大值、最小值)

8.3 遍歷鍵值對(duì)

如果需要同時(shí)獲取鍵和值,可以使用 items() 方法,它返回鍵值對(duì)元組。

student = {"name": "張三", "age": 18, "score": 95, "city": "北京"}

# 遍歷所有鍵值對(duì)
for key, value in student.items():
    print(f"{key}: {value}")
# 輸出:
# name: 張三
# age: 18
# score: 95
# city: 北京

# 實(shí)際應(yīng)用:篩選符合條件的數(shù)據(jù)
scores = {"語(yǔ)文": 85, "數(shù)學(xué)": 92, "英語(yǔ)": 78, "物理": 90}
print("及格的科目:")
for subject, score in scores.items():
    if score >= 80:
        print(f"  {subject}: {score}分")
# 輸出:
# 及格的科目:
#   語(yǔ)文: 85分
#   數(shù)學(xué): 92分
#   物理: 90分

# 實(shí)際應(yīng)用:構(gòu)建新字典
original = {"a": 1, "b": 2, "c": 3}
doubled = {}
for key, value in original.items():
    doubled[key] = value * 2
print(doubled)  # 輸出: {'a': 2, 'b': 4, 'c': 6}

使用場(chǎng)景

  • 需要同時(shí)使用鍵和值
  • 復(fù)雜的數(shù)據(jù)轉(zhuǎn)換和篩選

8.4 字典推導(dǎo)式遍歷

字典推導(dǎo)式不僅可以創(chuàng)建字典(第三章學(xué)過(guò)),還可以用于遍歷和轉(zhuǎn)換數(shù)據(jù)。它的語(yǔ)法簡(jiǎn)潔,效率也更高。

# 示例1:遍歷鍵值對(duì)并篩選
scores = {"語(yǔ)文": 85, "數(shù)學(xué)": 92, "英語(yǔ)": 78, "物理": 90}
pass_scores = {subject: score for subject, score in scores.items() if score >= 80}
print(pass_scores)  # 輸出: {'語(yǔ)文': 85, '數(shù)學(xué)': 92, '物理': 90}

# 示例2:遍歷鍵值對(duì)并轉(zhuǎn)換
student = {"name": "張三", "age": 18, "score": 95}
formatted = {f"學(xué)生{k}": f"值{v}" for k, v in student.items()}
print(formatted)  # 輸出: {'學(xué)生name': '值張三', '學(xué)生age': '值18', '學(xué)生score': '值95'}

# 示例3:鍵值互換
original = {"a": 1, "b": 2, "c": 3}
reversed_dict = {v: k for k, v in original.items()}
print(reversed_dict)  # 輸出: {1: 'a', 2: 'b', 3: 'c'}

# 示例4:合并兩個(gè)字典(鍵不同時(shí))
dict1 = {"a": 1, "b": 2}
dict2 = {"c": 3, "d": 4}
merged = {k: v for d in [dict1, dict2] for k, v in d.items()}
print(merged)  # 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

對(duì)比總結(jié)

遍歷方式適用場(chǎng)景示例
for key in dict只遍歷鍵遍歷字段名
for key in dict.keys()明確遍歷鍵需要鍵的列表
for value in dict.values()只遍歷值統(tǒng)計(jì)計(jì)算
for k, v in dict.items()同時(shí)遍歷鍵值數(shù)據(jù)篩選轉(zhuǎn)換
字典推導(dǎo)式簡(jiǎn)潔的轉(zhuǎn)換篩選一行代碼完成轉(zhuǎn)換

9. 字典嵌套(nested dict)

9.1 什么是嵌套字典

我們?cè)谇懊鎸W(xué)習(xí)了普通字典,它的特點(diǎn)是一個(gè)鍵對(duì)應(yīng)一個(gè)值。但在實(shí)際開發(fā)中,我們經(jīng)常會(huì)遇到更復(fù)雜的數(shù)據(jù)——一個(gè)鍵對(duì)應(yīng)多個(gè)值,或者數(shù)據(jù)本身有層級(jí)關(guān)系。這就是我們接下來(lái)要學(xué)習(xí)的嵌套字典。

嵌套字典是指字典中的值本身也是一個(gè)字典。換句話說(shuō),就是字典里面嵌套字典,形成多層次的數(shù)據(jù)結(jié)構(gòu)。它可以以層次結(jié)構(gòu)的方式組織和存儲(chǔ)數(shù)據(jù),非常適合表示復(fù)雜的關(guān)系型數(shù)據(jù)。

# 簡(jiǎn)單字典(鍵對(duì)應(yīng)單個(gè)值)
student = {"name": "張三", "age": 18}

# 嵌套字典(鍵對(duì)應(yīng)一個(gè)字典)
student = {
    "name": "張三",
    "profile": {
        "age": 18,
        "city": "北京",
        "email": "zhangsan@example.com"
    },
    "scores": {
        "語(yǔ)文": 85,
        "數(shù)學(xué)": 92,
        "英語(yǔ)": 78
    }
}

嵌套字典的結(jié)構(gòu)

外層字典
├── name: "張三"
├── profile: 內(nèi)層字典1
│   ├── age: 18
│   ├── city: "北京"
│   └── email: "zhangsan@example.com"
└── scores: 內(nèi)層字典2
    ├── 語(yǔ)文: 85
    ├── 數(shù)學(xué): 92
    └── 英語(yǔ): 78

常見的嵌套場(chǎng)景

  • 多個(gè)學(xué)生的信息:每個(gè)學(xué)生是一個(gè)字典,所有學(xué)生組成一個(gè)大字典
  • JSON 數(shù)據(jù):JSON 對(duì)象本身就是嵌套字典
  • 配置信息:多級(jí)分類的配置項(xiàng)

9.2 嵌套字典的增刪改查

嵌套字典的操作與普通字典類似,但需要指定多層鍵。

# 創(chuàng)建嵌套字典
company = {
    "部門A": {"員工數(shù)": 10, "預(yù)算": 50000},
    "部門B": {"員工數(shù)": 15, "預(yù)算": 80000}
}

# 查:訪問嵌套字典中的值
print(company["部門A"])              # 輸出: {'員工數(shù)': 10, '預(yù)算': 50000}
print(company["部門A"]["員工數(shù)"])     # 輸出: 10

# 增:添加新的嵌套字典
company["部門C"] = {"員工數(shù)": 8, "預(yù)算": 30000}
print(company)
# 輸出: {'部門A': {...}, '部門B': {...}, '部門C': {...}}

# 改:修改嵌套字典中的值
company["部門A"]["預(yù)算"] = 60000
print(company["部門A"])  # 輸出: {'員工數(shù)': 10, '預(yù)算': 60000}

# 增:在嵌套字典中添加新鍵值對(duì)
company["部門A"]["負(fù)責(zé)人"] = "張三"
print(company["部門A"])  # 輸出: {'員工數(shù)': 10, '預(yù)算': 60000, '負(fù)責(zé)人': '張三'}

# 刪:刪除嵌套字典中的鍵值對(duì)
del company["部門B"]["員工數(shù)"]
print(company["部門B"])  # 輸出: {'預(yù)算': 80000}

# 使用 pop() 刪除并獲取值
removed = company["部門C"].pop("預(yù)算")
print(removed)    # 輸出: 30000
print(company["部門C"])  # 輸出: {'員工數(shù)': 8}

注意:訪問嵌套字典時(shí),如果中間層的鍵不存在,會(huì)拋出 KeyError??梢允褂?get() 方法安全訪問:

# 安全訪問嵌套字典
print(company.get("部門D", {}))           # 輸出: {}(鍵不存在返回默認(rèn)值)
print(company.get("部門A", {}).get("預(yù)算"))  # 輸出: 60000

# 鏈?zhǔn)秸{(diào)用需要注意:任何一個(gè) get() 返回默認(rèn)值都會(huì)繼續(xù)調(diào)用
print(company.get("部門D", {}).get("預(yù)算"))  # 輸出: None(不會(huì)報(bào)錯(cuò))

9.3 嵌套字典的遍歷

遍歷嵌套字典需要使用嵌套循環(huán),或者通過(guò)遞歸處理。

# 嵌套字典
company = {
    "部門A": {"員工數(shù)": 10, "預(yù)算": 50000},
    "部門B": {"員工數(shù)": 15, "預(yù)算": 80000}
}

# 遍歷外層字典的所有鍵值對(duì)
print("=== 遍歷所有部門及其信息 ===")
for dept, info in company.items():
    print(f"部門: {dept}")
    for key, value in info.items():
        print(f"  {key}: {value}")
# 輸出:
# 部門: 部門A
#   員工數(shù): 10
#   預(yù)算: 50000
# 部門: 部門B
#   員工數(shù): 15
#   預(yù)算: 80000

# 遍歷所有值(嵌套字典的值)
print("\n=== 遍歷所有詳細(xì)信息 ===")
for dept, info in company.items():
    for value in info.values():
        print(value)
# 輸出: 10, 50000, 15, 80000

# 使用字典推導(dǎo)式創(chuàng)建新嵌套字典
doubled = {dept: {k: v * 2 for k, v in info.items()} for dept, info in company.items()}
print(doubled)
# 輸出: {'部門A': {'員工數(shù)': 20, '預(yù)算': 100000}, '部門B': {'員工數(shù)': 30, '預(yù)算': 160000}}

# 統(tǒng)計(jì)所有部門的總預(yù)算
total_budget = sum(info["預(yù)算"] for info in company.values())
print(f"總預(yù)算: {total_budget}")  # 輸出: 總預(yù)算: 130000

# 找出員工數(shù)最多的部門
# company.items() 返回鍵值對(duì)元組:(鍵, 值) = (部門名稱, {'員工數(shù)': 10, '預(yù)算': 50000})
# x[0] 是部門名稱(鍵),x[1] 是員工數(shù)和預(yù)算(值,是一個(gè)字典)
max_staff_dept = max(company.items(), key=lambda x: x[1]["員工數(shù)"])
print(f"員工最多的部門: {max_staff_dept[0]}")  # 輸出: 員工最多的部門: 部門B

9.4 實(shí)際應(yīng)用場(chǎng)景

嵌套字典在實(shí)際開發(fā)中非常常見,下面列舉幾個(gè)典型場(chǎng)景:

場(chǎng)景1:學(xué)生成績(jī)管理系統(tǒng)

students = {
    "張三": {
        "語(yǔ)文": 85,
        "數(shù)學(xué)": 92,
        "英語(yǔ)": 78
    },
    "李四": {
        "語(yǔ)文": 90,
        "數(shù)學(xué)": 88,
        "英語(yǔ)": 95
    },
    "王五": {
        "語(yǔ)文": 75,
        "數(shù)學(xué)": 82,
        "英語(yǔ)": 80
    }
}

# 查詢某個(gè)學(xué)生的成績(jī)
print(students["張三"]["數(shù)學(xué)"])  # 輸出: 92

# 計(jì)算每個(gè)學(xué)生的平均分
for name, scores in students.items():
    avg = sum(scores.values()) / len(scores)
    print(f"{name}的平均分: {avg:.1f}")

# 找出每科最高分
subjects = ["語(yǔ)文", "數(shù)學(xué)", "英語(yǔ)"]
for subject in subjects:
    max_score = max(students[name][subject] for name in students)
    print(f"{subject}最高分: {max_score}")

場(chǎng)景2:電商訂單信息

orders = {
    "訂單001": {
        "商品": "iPhone 15",
        "數(shù)量": 2,
        "價(jià)格": 5999,
        "客戶": {
            "姓名": "張三",
            "電話": "13800138000",
            "地址": "北京市朝陽(yáng)區(qū)"
        }
    },
    "訂單002": {
        "商品": "MacBook Pro",
        "數(shù)量": 1,
        "價(jià)格": 12999,
        "客戶": {
            "姓名": "李四",
            "電話": "13900139000",
            "地址": "上海市浦東新區(qū)"
        }
    }
}

# 訪問嵌套的客戶信息
print(orders["訂單001"]["客戶"]["姓名"])  # 輸出: 張三

# 統(tǒng)計(jì)總收入
total = sum(order["價(jià)格"] * order["數(shù)量"] for order in orders.values())
print(f"總收入: {total}")  # 輸出: 總收入: 24997

場(chǎng)景3:多層分類配置

config = {
    "數(shù)據(jù)庫(kù)": {
        "MySQL": {
            "host": "localhost",
            "port": 3306,
            "max_connections": 100
        },
        "Redis": {
            "host": "localhost",
            "port": 6379
        }
    },
    "日志": {
        "級(jí)別": "INFO",
        "文件路徑": "/var/log/app.log",
        "最大大小": "100MB"
    }
}

# 訪問深層配置
print(config["數(shù)據(jù)庫(kù)"]["MySQL"]["host"])  # 輸出: localhost

學(xué)習(xí)建議:嵌套字典是處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)的利器。在實(shí)際使用中,我們要注意層級(jí)的合理性——過(guò)深的嵌套會(huì)增加代碼復(fù)雜度。如果我們發(fā)現(xiàn)嵌套太深,可以考慮拆分成多個(gè)字典或使用類來(lái)組織數(shù)據(jù)。

10. 總結(jié)

我們?cè)诒菊聦W(xué)習(xí)了 Python 字典的核心操作,主要包括以下幾個(gè)方面:

  • 字典創(chuàng)建:使用 {}、dict()、fromkeys()、字典推導(dǎo)式
  • 字典查詢:通過(guò)鍵獲取值、get() 方法、keys()/values()/items()、in 運(yùn)算符
  • 字典增加:直接賦值、setdefault()、update()
  • 字典修改:通過(guò)鍵修改、update()
  • 字典刪除pop()、popitem()、del、clear()
  • 字典遍歷:遍歷鍵、值、鍵值對(duì),字典推導(dǎo)式
  • 嵌套字典:多層級(jí)的字典結(jié)構(gòu)及其操作

掌握這些操作后,我們就可以在實(shí)際開發(fā)中高效地使用字典來(lái)處理各種數(shù)據(jù)了。

以上就是從增刪改查到遍歷嵌套詳解Python中字典操作的完全指南的詳細(xì)內(nèi)容,更多關(guān)于Python字典操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用wxpy模塊實(shí)現(xiàn)微信兩兩群組消息同步功能(推薦)

    Python使用wxpy模塊實(shí)現(xiàn)微信兩兩群組消息同步功能(推薦)

    這篇文章主要介紹了Python使用wxpy模塊實(shí)現(xiàn)微信兩兩群組消息同步,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Python re正則表達(dá)式元字符分組()用法分享

    Python re正則表達(dá)式元字符分組()用法分享

    在本篇文章里小編給大家整理了關(guān)于Python re正則表達(dá)式元字符分組()的相關(guān)知識(shí)點(diǎn)實(shí)例,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • tensorflow與numpy的版本兼容性問題的解決

    tensorflow與numpy的版本兼容性問題的解決

    這篇文章主要介紹了tensorflow與numpy的版本兼容性問題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python自定義scrapy中間模塊避免重復(fù)采集的方法

    Python自定義scrapy中間模塊避免重復(fù)采集的方法

    這篇文章主要介紹了Python自定義scrapy中間模塊避免重復(fù)采集的方法,實(shí)例分析了Python實(shí)現(xiàn)采集的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • pycharm激活碼免費(fèi)分享適用最新pycharm2020.2.3永久激活

    pycharm激活碼免費(fèi)分享適用最新pycharm2020.2.3永久激活

    免費(fèi)為大家分享Pycharm激活碼,適用最新版pycharm2020.2.3永久激活,pycharm2018,pycharm2019也可永久激活,可成功激活到2089年
    2020-11-11
  • Matlab求解數(shù)組中的最大值及它所在的具體位置

    Matlab求解數(shù)組中的最大值及它所在的具體位置

    這篇文章主要介紹了Matlab求解數(shù)組中的最大值及它所在的具體位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    Python實(shí)戰(zhàn)之整蠱神器合集加速友盡

    讀萬(wàn)卷書不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶用python來(lái)做幾個(gè)整蠱的小程序,大家可以在過(guò)程中查缺補(bǔ)漏,看看自己掌握程度怎么樣,發(fā)給朋友加固一下友誼
    2021-10-10
  • python 如何用terminal輸入?yún)?shù)

    python 如何用terminal輸入?yún)?shù)

    這篇文章主要介紹了python 如何用terminal輸入?yún)?shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python如何安裝mysql數(shù)據(jù)庫(kù)模塊

    Python如何安裝mysql數(shù)據(jù)庫(kù)模塊

    這篇文章主要介紹了Python如何安裝mysql數(shù)據(jù)庫(kù)模塊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • python正則表達(dá)式之作業(yè)計(jì)算器

    python正則表達(dá)式之作業(yè)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了python正則表達(dá)式之作業(yè)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們
    2016-03-03

最新評(píng)論

木兰县| 潞西市| 宁德市| 伊春市| 枣阳市| 繁峙县| 青神县| 中山市| 永平县| 开阳县| 双流县| 烟台市| 常宁市| 通河县| 天津市| 九寨沟县| 云林县| 巴林左旗| 阿拉善盟| SHOW| 江孜县| 温宿县| 巫山县| 四子王旗| 佛学| 宁远县| 应城市| 乳源| 增城市| 固阳县| 城市| 无棣县| 科尔| 常熟市| 易门县| 衡阳市| 吉木乃县| 马尔康县| 遂平县| 商都县| 资中县|