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

Python字典嵌套的使用技巧分享

 更新時(shí)間:2026年05月18日 08:54:27   作者:知遠(yuǎn)漫談  
在Python的世界里,字典(Dictionary)是最強(qiáng)大、最靈活的數(shù)據(jù)結(jié)構(gòu)之一,它像一把萬(wàn)能 鑰匙,能輕松打開(kāi)復(fù)雜數(shù)據(jù)處理的大門(mén),當(dāng)你面對(duì)真實(shí)世界的數(shù)據(jù)時(shí),簡(jiǎn)單的鍵值對(duì)往往不夠用——這時(shí),字典的嵌套就成了你的超級(jí)武器,今天,我們就來(lái)深入探討字典嵌套的奧秘

引言

在Python的世界里,字典(Dictionary)是最強(qiáng)大、最靈活的數(shù)據(jù)結(jié)構(gòu)之一。它像一把萬(wàn)能 鑰匙,能輕松打開(kāi)復(fù)雜數(shù)據(jù)處理的大門(mén)。但當(dāng)你面對(duì)真實(shí)世界的數(shù)據(jù)時(shí),簡(jiǎn)單的鍵值對(duì)往往不夠用——這時(shí),字典的嵌套就成了你的超級(jí)武器!無(wú)論是字典中嵌套字典,還是字典中嵌套列表,這種結(jié)構(gòu)能優(yōu)雅地表示層次化、關(guān)聯(lián)性強(qiáng)的數(shù)據(jù),比如用戶配置、API響應(yīng)或樹(shù)形組織架構(gòu)。今天,我們就來(lái)深入探討字典嵌套的奧秘,用大量代碼示例、實(shí)用技巧和可視化圖表,讓你徹底掌握這一核心技能。別擔(dān)心,即使你是Python新手,這篇指南也會(huì)帶你從零起飛!

為什么需要字典嵌套?

想象一下:你正在開(kāi)發(fā)一個(gè)電商系統(tǒng),需要存儲(chǔ)用戶信息。如果只用基礎(chǔ)字典,可能這樣寫(xiě):

user = {
    "name": "張三",
    "age": 28,
    "city": "北京"
}

但現(xiàn)實(shí)更復(fù)雜:用戶可能有多個(gè)地址、訂單歷史,甚至家庭成員信息。這時(shí),基礎(chǔ)字典就捉襟見(jiàn)肘了!?? 嵌套字典能自然表達(dá)這種層級(jí)關(guān)系:

user = {
    "name": "張三",
    "contact": {
        "email": "zhangsan@example.com",
        "phone": "13800138000"
    },
    "orders": [
        {"id": 101, "product": "筆記本電腦", "price": 5999},
        {"id": 102, "product": "無(wú)線鼠標(biāo)", "price": 199}
    ]
}

看!contact是嵌套字典,orders是嵌套列表。這種結(jié)構(gòu)讓數(shù)據(jù)組織清晰、訪問(wèn)高效。根據(jù)Python官方文檔,字典的嵌套能力是其成為"通用數(shù)據(jù)結(jié)構(gòu)"的關(guān)鍵原因之一。在Web開(kāi)發(fā)、數(shù)據(jù)分析等領(lǐng)域,這種模式幾乎無(wú)處不在——比如處理JSON數(shù)據(jù)時(shí),你90%的時(shí)間都在和嵌套字典打交道!

字典基礎(chǔ)快速回顧

在深入嵌套前,先鞏固基礎(chǔ)。字典是可變、無(wú)序的鍵值對(duì)集合,鍵必須是不可變類型(如字符串、數(shù)字),值可以是任意類型。

創(chuàng)建字典的三種方式

# 方式1: 花括號(hào)
person = {"name": "李四", "age": 25}

# 方方式2: dict()構(gòu)造函數(shù)
person = dict(name="李四", age=25)

# 方式3: 從鍵值對(duì)列表
person = dict([("name", "李四"), ("age", 25)])

基本操作

# 添加/修改
person["city"] = "上海"  # 新增鍵值對(duì)
person["age"] = 26       # 修改現(xiàn)有值

# 訪問(wèn)
print(person["name"])    # 輸出: 李四

# 安全訪問(wèn)(避免KeyError)
print(person.get("email", "默認(rèn)郵箱"))  # 不存在時(shí)返回"默認(rèn)郵箱"

# 刪除
del person["city"]

關(guān)鍵點(diǎn):字典的get()方法比直接索引更安全!尤其在嵌套結(jié)構(gòu)中,它能防止程序崩潰。

現(xiàn)在,讓我們進(jìn)入核心主題——嵌套的魔法世界!

字典嵌套字典:構(gòu)建層次化數(shù)據(jù)

當(dāng)字典的值本身也是字典時(shí),就形成了字典嵌套字典。這種結(jié)構(gòu)特別適合表示"對(duì)象包含子對(duì)象"的場(chǎng)景,比如配置文件、組織架構(gòu)或地理區(qū)域劃分。

基礎(chǔ)示例:城市信息庫(kù)

假設(shè)我們要存儲(chǔ)中國(guó)主要城市的詳細(xì)信息:

cities = {
    "北京": {
        "population": 21893095,
        "area_km2": 16410.54,
        "landmarks": ["故宮", "長(zhǎng)城"]
    },
    "上海": {
        "population": 24894300,
        "area_km2": 6340.5,
        "landmarks": ["外灘", "東方明珠"]
    }
}

這里,外層字典的鍵是城市名,值是一個(gè)包含人口、面積和地標(biāo)的嵌套字典。

如何訪問(wèn)嵌套數(shù)據(jù)?

訪問(wèn)多層數(shù)據(jù)需要鏈?zhǔn)剿饕?/strong>:

# 獲取北京的人口
print(cities["北京"]["population"])  # 輸出: 21893095

# 獲取上海的第一個(gè)地標(biāo)
print(cities["上海"]["landmarks"][0])  # 輸出: 外灘

但直接索引有風(fēng)險(xiǎn)!如果城市名拼寫(xiě)錯(cuò)誤,會(huì)觸發(fā)KeyError

# 錯(cuò)誤示例:嘗試訪問(wèn)不存在的"廣州"
print(cities["廣州"]["population"])  # KeyError: '廣州'

安全訪問(wèn)技巧

get()層層防護(hù):

# 安全獲取廣州人口(不存在則返回None)
guangzhou_pop = cities.get("廣州", {}).get("population")
print(guangzhou_pop)  # 輸出: None

# 帶默認(rèn)值的鏈?zhǔn)皆L問(wèn)
shanghai_landmarks = cities.get("上海", {}).get("landmarks", [])
print(shanghai_landmarks[0])  # 輸出: 外灘

最佳實(shí)踐:嵌套層級(jí)越深,越要用get()。對(duì)于超過(guò)2層的結(jié)構(gòu),考慮使用第三方庫(kù)如glom簡(jiǎn)化操作(但基礎(chǔ)場(chǎng)景用get足夠)。

可視化結(jié)構(gòu):Mermaid圖表

下面用Mermaid清晰展示cities字典的嵌套關(guān)系???!外層字典的每個(gè)鍵(如"北京")都指向一個(gè)獨(dú)立的子字典,子字典又包含自己的鍵值對(duì):

這個(gè)圖表直觀地揭示了:嵌套字典的本質(zhì)是"字典的值指向另一個(gè)字典對(duì)象"。當(dāng)你修改子字典時(shí),外層字典會(huì)同步更新(因?yàn)槭且藐P(guān)系)。

修改嵌套字典

直接修改子字典的值:

# 更新上海的人口
cities["上海"]["population"] = 25000000
print(cities["上海"]["population"])  # 輸出: 25000000

# 添加新城市
cities["廣州"] = {
    "population": 18676605,
    "area_km2": 7434.4,
    "landmarks": ["小蠻腰", "陳家祠"]
}

但要注意:如果鍵不存在,不能直接創(chuàng)建子字典

# 錯(cuò)誤!cities中沒(méi)有"深圳",無(wú)法直接操作其子鍵
cities["深圳"]["population"] = 17560000  # KeyError

正確做法:先初始化子字典

# 安全創(chuàng)建新城市
if "深圳" not in cities:
    cities["深圳"] = {}  # 先創(chuàng)建空子字典
cities["深圳"]["population"] = 17560000

實(shí)戰(zhàn)案例:用戶權(quán)限系統(tǒng)

在Web應(yīng)用中,常用嵌套字典管理用戶角色和權(quán)限:

permissions = {
    "admin": {
        "dashboard": ["read", "write", "delete"],
        "users": ["read", "write"]
    },
    "editor": {
        "dashboard": ["read", "write"],
        "users": ["read"]
    }
}

# 檢查admin是否有users的delete權(quán)限
has_delete = "delete" in permissions.get("admin", {}).get("users", [])
print(has_delete)  # 輸出: False

這種結(jié)構(gòu)讓權(quán)限邏輯一目了然。

字典嵌套列表:處理多值數(shù)據(jù)

當(dāng)字典的值是列表時(shí),就形成了字典嵌套列表。這特別適合存儲(chǔ)"一個(gè)鍵對(duì)應(yīng)多個(gè)值"的場(chǎng)景,比如學(xué)生的多門(mén)成績(jī)、產(chǎn)品的多個(gè)評(píng)論。

基礎(chǔ)示例:學(xué)生成績(jī)系統(tǒng)

students = {
    "張三": [85, 90, 78],  # 數(shù)學(xué)、英語(yǔ)、物理成績(jī)
    "李四": [92, 88, 95]
}

這里,每個(gè)學(xué)生(鍵)對(duì)應(yīng)一個(gè)成績(jī)列表(值)。

訪問(wèn)與修改列表數(shù)據(jù)

# 獲取張三的第一門(mén)成績(jī)
print(students["張三"][0])  # 輸出: 85

# 添加李四的新成績(jī)
students["李四"].append(82)
print(students["李四"])  # 輸出: [92, 88, 95, 82]

# 修改張三的第二門(mén)成績(jī)
students["張三"][1] = 95

高級(jí)操作:列表推導(dǎo)式與嵌套

用列表推導(dǎo)式高效處理數(shù)據(jù):

# 計(jì)算所有學(xué)生的平均分
averages = {
    name: sum(scores) / len(scores) 
    for name, scores in students.items()
}
print(averages)  # 輸出: {'張三': 87.666..., '李四': 91.75}

# 找出平均分高于90的學(xué)生
top_students = [name for name, avg in averages.items() if avg > 90]
print(top_students)  # 輸出: ['李四']

可視化結(jié)構(gòu):Mermaid圖表

看這個(gè)圖表,外層字典的每個(gè)鍵(如"張三")指向一個(gè)列表,列表內(nèi)包含多個(gè)值:

關(guān)鍵洞察:列表在字典中作為值時(shí),保留了順序性,這使得它完美適合時(shí)間序列或有序數(shù)據(jù)。但要注意,列表是可變的,修改會(huì)影響原字典。

實(shí)戰(zhàn)案例:電商產(chǎn)品庫(kù)存

在電商系統(tǒng)中,產(chǎn)品可能有多個(gè)SKU(庫(kù)存單位):

products = {
    "iPhone 15": [
        {"color": "黑色", "storage": "128GB", "stock": 50},
        {"color": "白色", "storage": "256GB", "stock": 30}
    ],
    "MacBook Air": [
        {"color": "銀色", "storage": "256GB", "stock": 20}
    ]
}

# 查詢iPhone 15的黑色128GB庫(kù)存
for variant in products["iPhone 15"]:
    if variant["color"] == "黑色" and variant["storage"] == "128GB":
        print(variant["stock"])  # 輸出: 50

# 安全添加新SKU
if "iPhone 15" in products:
    products["iPhone 15"].append({"color": "藍(lán)色", "storage": "512GB", "stock": 15})

這種結(jié)構(gòu)讓庫(kù)存管理極其靈活。

混合嵌套:字典+列表的終極組合

真實(shí)世界的數(shù)據(jù)往往更復(fù)雜——字典中既有嵌套字典,又有嵌套列表。這種混合嵌套結(jié)構(gòu)能表達(dá)高度關(guān)聯(lián)的數(shù)據(jù),比如社交網(wǎng)絡(luò)或API響應(yīng)。

綜合示例:社交媒體用戶檔案

user_profile = {
    "id": 1001,
    "username": "python_lover",
    "profile": {  # 嵌套字典
        "bio": "Python愛(ài)好者",
        "location": "杭州"
    },
    "posts": [  # 嵌套列表
        {
            "id": 201,
            "content": "今天學(xué)習(xí)了字典嵌套!",
            "likes": 42,
            "comments": [  # 列表中嵌套字典
                {"user": "coder1", "text": "太有用了!"},
                {"user": "data_guy", "text": "收藏了"}
            ]
        },
        {
            "id": 202,
            "content": "Mermaid圖表真酷",
            "likes": 28
        }
    ]
}

訪問(wèn)深層數(shù)據(jù)的技巧

混合結(jié)構(gòu)的訪問(wèn)鏈可能很長(zhǎng),務(wù)必用get()防護(hù):

# 獲取第一條post的第一個(gè)評(píng)論內(nèi)容
first_comment = (
    user_profile.get("posts", [{}])[0]  # 獲取posts列表,取第一個(gè)元素(或空字典)
    .get("comments", [{}])[0]           # 獲取comments列表,取第一個(gè)元素
    .get("text", "無(wú)評(píng)論")              # 獲取text
)
print(first_comment)  # 輸出: 太有用了!

# 錯(cuò)誤示范:直接索引可能崩潰
# print(user_profile["posts"][0]["comments"][0]["text"]) 

簡(jiǎn)化深層訪問(wèn):自定義函數(shù)

寫(xiě)個(gè)小函數(shù)避免冗長(zhǎng)的鏈?zhǔn)?code>get:

def safe_get(data, *keys, default=None):
    """安全獲取嵌套數(shù)據(jù)"""
    for key in keys:
        if isinstance(data, dict):
            data = data.get(key, default)
        elif isinstance(data, list) and isinstance(key, int):
            data = data[key] if key < len(data) else default
        else:
            return default
        if data is default:
            break
    return data

# 用法示例
bio = safe_get(user_profile, "profile", "bio")
print(bio)  # 輸出: Python愛(ài)好者

comment = safe_get(user_profile, "posts", 0, "comments", 0, "text")
print(comment)  # 輸出: 太有用了!

這個(gè)函數(shù)能智能處理字典和列表的混合訪問(wèn),大幅提升代碼健壯性。

可視化混合結(jié)構(gòu):Mermaid圖表

下面圖表展示了user_profile的完整層次。注意posts列表中的每個(gè)元素又是字典,而comments是列表嵌套字典:

從圖中清晰可見(jiàn):混合嵌套的本質(zhì)是"字典與列表的交替組合"。外層是字典,內(nèi)層可能是列表,列表元素又可能是字典… 這種靈活性正是Python數(shù)據(jù)處理的精髓!

實(shí)戰(zhàn)案例:解析JSON API響應(yīng)

幾乎所有現(xiàn)代API(如Twitter、GitHub)都返回JSON數(shù)據(jù),而JSON在Python中會(huì)自動(dòng)轉(zhuǎn)為嵌套字典/列表。例如,用requests獲取天氣數(shù)據(jù):

import requests

# 獲取北京天氣(示例API,實(shí)際使用需替換有效key)
response = requests.get("https://api.openweathermap.org/data/2.5/weather?q=Beijing&appid=YOUR_API_KEY")
data = response.json()  # 返回嵌套字典

# 提取關(guān)鍵信息
temperature = data["main"]["temp"] - 273.15  # 開(kāi)爾文轉(zhuǎn)攝氏度
humidity = data["main"]["humidity"]
wind_speed = data["wind"]["speed"]

print(f"北京溫度: {temperature:.1f}°C, 濕度: {humidity}%, 風(fēng)速: {wind_speed} m/s")

注意:上面的API需要有效key,但OpenWeatherMap官網(wǎng)提供免費(fèi)測(cè)試key。實(shí)際開(kāi)發(fā)中,務(wù)必處理可能的KeyError!

常見(jiàn)錯(cuò)誤與最佳實(shí)踐

嵌套字典雖強(qiáng)大,但新手常踩坑。下面總結(jié)高頻問(wèn)題及解決方案。

? 錯(cuò)誤1:KeyError——訪問(wèn)不存在的鍵

# 錯(cuò)誤代碼
print(user_profile["posts"][2]["content"])  # posts只有2個(gè)元素,索引2越界

修復(fù)方案

  • get()替代直接索引
  • 檢查長(zhǎng)度:if len(user_profile["posts"]) > 2
  • try/except捕獲異常
# 安全訪問(wèn)第3條post
post = user_profile["posts"][2] if len(user_profile["posts"]) > 2 else None
if post:
    print(post["content"])

? 錯(cuò)誤2:混淆字典與列表操作

# 錯(cuò)誤:把列表當(dāng)字典用
print(user_profile["posts"]["comments"])  # posts是列表,不能用字符串索引

修復(fù)方案

  • 記?。?strong>列表用整數(shù)索引,字典用鍵索引
  • type()檢查類型:
print(type(user_profile["posts"]))  # 輸出: <class 'list'>

? 錯(cuò)誤3:修改嵌套結(jié)構(gòu)導(dǎo)致意外副作用

# 創(chuàng)建副本避免污染原數(shù)據(jù)
original = {"data": [1, 2, 3]}
copy = original  # 錯(cuò)誤:這只是引用,不是副本!
copy["data"].append(4)
print(original["data"])  # 輸出: [1, 2, 3, 4] —— 原數(shù)據(jù)被修改!

修復(fù)方案

copy.deepcopy()創(chuàng)建完全獨(dú)立的副本

import copy
safe_copy = copy.deepcopy(original)
safe_copy["data"].append(4)
print(original["data"])  # 輸出: [1, 2, 3] —— 安全!

? 最佳實(shí)踐清單

  1. 優(yōu)先使用get():尤其嵌套層級(jí)>2時(shí)
  2. 驗(yàn)證數(shù)據(jù)類型:用isinstance(data, dict)檢查
  3. 避免硬編碼索引:用循環(huán)或for遍歷列表
  4. 深拷貝保護(hù)數(shù)據(jù):修改前用copy.deepcopy()
  5. 結(jié)構(gòu)扁平化:過(guò)度嵌套會(huì)降低可讀性,適時(shí)拆分邏輯

專業(yè)提示:在Django或Flask等框架中,嵌套字典常用于request.json解析。學(xué)會(huì)safe_get函數(shù)能大幅減少500錯(cuò)誤!

性能考量:嵌套字典真的慢嗎?

有人擔(dān)心嵌套會(huì)影響性能。實(shí)際上:

  • 訪問(wèn)速度:字典的鍵查找是O(1)平均時(shí)間復(fù)雜度,即使嵌套,鏈?zhǔn)皆L問(wèn)也是O(k)(k=嵌套深度),對(duì)k<10的結(jié)構(gòu)幾乎無(wú)影響。
  • 內(nèi)存占用:嵌套不會(huì)額外增加內(nèi)存,因?yàn)橹抵皇且茫ㄖ羔槪?/li>

測(cè)試一下100萬(wàn)次訪問(wèn):

import time

# 創(chuàng)建深層嵌套字典
deep_dict = {"a": {"b": {"c": {"d": {"value": 1}}}}}

start = time.time()
for _ in range(1000000):
    _ = deep_dict["a"]["b"]["c"]["d"]["value"]
print(f"直接訪問(wèn): {time.time() - start:.4f}秒")

start = time.time()
for _ in range(1000000):
    _ = deep_dict.get("a", {}).get("b", {}).get("c", {}).get("d", {}).get("value")
print(f"安全訪問(wèn): {time.time() - start:.4f}秒")

輸出示例:

直接訪問(wèn): 0.1523秒
安全訪問(wèn): 0.2876秒

雖然get()稍慢(約慢1.9倍),但100萬(wàn)次僅差0.1秒!在絕大多數(shù)應(yīng)用中,可讀性和健壯性遠(yuǎn)比這點(diǎn)性能損耗重要。只有在性能敏感場(chǎng)景(如高頻交易),才需優(yōu)化。

實(shí)戰(zhàn)技巧:嵌套字典的高級(jí)操作

技巧1:遞歸遍歷所有鍵值

寫(xiě)個(gè)函數(shù)打印任意嵌套字典的所有路徑:

def print_nested(data, prefix=""):
    if isinstance(data, dict):
        for key, value in data.items():
            new_prefix = f"{prefix}.{key}" if prefix else key
            print_nested(value, new_prefix)
    elif isinstance(data, list):
        for i, item in enumerate(data):
            print_nested(item, f"{prefix}[{i}]")
    else:
        print(f"{prefix} = {data}")

# 測(cè)試user_profile
print_nested(user_profile)

輸出:

id = 1001
username = python_lover
profile.bio = Python愛(ài)好者
profile.location = 杭州
posts[0].id = 201
posts[0].content = 今天學(xué)習(xí)了字典嵌套!
posts[0].likes = 42
posts[0].comments[0].user = coder1
posts[0].comments[0].text = 太有用了!
posts[0].comments[1].user = data_guy
posts[0].comments[1].text = 收藏了
posts[1].id = 202
posts[1].content = Mermaid圖表真酷
posts[1].likes = 28

這個(gè)函數(shù)能幫你快速理解復(fù)雜數(shù)據(jù)結(jié)構(gòu)!

技巧2:用字典推導(dǎo)式重構(gòu)數(shù)據(jù)

將嵌套結(jié)構(gòu)轉(zhuǎn)換為扁平化字典:

# 提取所有評(píng)論內(nèi)容
comments = [
    comment["text"] 
    for post in user_profile["posts"] 
    for comment in post.get("comments", [])
]
print(comments)  # 輸出: ['太有用了!', '收藏了']

技巧3:合并嵌套字典

update()合并兩個(gè)嵌套字典(注意:淺合并):

dict1 = {"a": {"x": 1}}
dict2 = {"a": {"y": 2}, "b": 3}

dict1.update(dict2)
print(dict1)  # 輸出: {'a': {'y': 2}, 'b': 3} —— 'a'被完全覆蓋!

要深度合并,需自定義函數(shù):

def deep_update(dict1, dict2):
    for key, value in dict2.items():
        if key in dict1 and isinstance(dict1[key], dict) and isinstance(value, dict):
            deep_update(dict1[key], value)
        else:
            dict1[key] = value

# 測(cè)試
dict1 = {"a": {"x": 1}}
dict2 = {"a": {"y": 2}, "b": 3}
deep_update(dict1, dict2)
print(dict1)  # 輸出: {'a': {'x': 1, 'y': 2}, 'b': 3}

真實(shí)世界應(yīng)用

嵌套字典不僅是語(yǔ)法技巧,更是解決實(shí)際問(wèn)題的利器:

場(chǎng)景1:配置管理

Django的settings.py大量使用嵌套字典:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "mydb",
        "USER": "myuser",
        "PASSWORD": "mypass",
        "HOST": "localhost",
        "PORT": "5432"
    }
}

通過(guò)DATABASES["default"]["HOST"]輕松獲取配置。

場(chǎng)景2:數(shù)據(jù)分析(Pandas + 字典)

pd.json_normalize()展平嵌套字典:

import pandas as pd

data = [{"name": "A", "metrics": {"sales": 100, "profit": 30}}]
df = pd.json_normalize(data)
print(df)
# 輸出:
#   name  metrics.sales  metrics.profit
# 0    A            100              30

這在處理JSON數(shù)據(jù)時(shí)極其高效!

場(chǎng)景3:機(jī)器學(xué)習(xí)特征工程

Scikit-learn的DictVectorizer能將嵌套字典轉(zhuǎn)為特征矩陣:

from sklearn.feature_extraction import DictVectorizer

data = [
    {"color": "red", "size": {"small": 1, "large": 0}},
    {"color": "blue", "size": {"small": 0, "large": 1}}
]
vec = DictVectorizer()
features = vec.fit_transform(data).toarray()
print(features)
# 輸出:
# [[1. 0. 1. 0.]
#  [0. 1. 0. 1.]]

嵌套結(jié)構(gòu)自動(dòng)展開(kāi)為獨(dú)立特征列。

總結(jié)與行動(dòng)指南

字典的嵌套使用(字典嵌套字典與列表)是Python數(shù)據(jù)處理的核心技能。通過(guò)本文,你已掌握:

  • ? 字典嵌套字典的創(chuàng)建、訪問(wèn)與修改技巧
  • ? 字典嵌套列表的高效操作方法
  • ? 混合嵌套結(jié)構(gòu)的實(shí)戰(zhàn)處理策略
  • ? 安全訪問(wèn)、性能優(yōu)化和常見(jiàn)錯(cuò)誤規(guī)避

記住關(guān)鍵原則:

“用get()防御,用循環(huán)遍歷,用深拷貝保護(hù)”

現(xiàn)在,是時(shí)候動(dòng)手實(shí)踐了!

  1. 小挑戰(zhàn):寫(xiě)一個(gè)函數(shù),統(tǒng)計(jì)嵌套字典中所有字符串的長(zhǎng)度總和。
  2. 中挑戰(zhàn):解析一個(gè)JSON文件(如公開(kāi)的GitHub API示例),提取用戶倉(cāng)庫(kù)名。
  3. 大挑戰(zhàn):用嵌套字典實(shí)現(xiàn)一個(gè)簡(jiǎn)易文件系統(tǒng)模擬器(支持目錄/文件層次)。

Python的字典就像樂(lè)高積木——單個(gè)很簡(jiǎn)單,但組合起來(lái)能創(chuàng)造無(wú)限可能。掌握嵌套技巧后,你會(huì)發(fā)現(xiàn):曾經(jīng)復(fù)雜的JSON數(shù)據(jù)、API響應(yīng)甚至數(shù)據(jù)庫(kù)結(jié)果,現(xiàn)在都變得清晰可控。別再被層層嵌套嚇到,拿起代碼,開(kāi)始構(gòu)建你的數(shù)據(jù)宇宙吧!

以上就是Python字典嵌套的使用技巧分享的詳細(xì)內(nèi)容,更多關(guān)于Python字典嵌套使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python數(shù)字圖像處理之圖像的批量處理

    python數(shù)字圖像處理之圖像的批量處理

    這篇文章主要為大家介紹了python數(shù)字圖像處理之圖像的批量處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python OpenCV圖像模糊處理介紹

    Python OpenCV圖像模糊處理介紹

    大家好,本篇文章主要講的是Python OpenCV圖像模糊處理介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Python實(shí)現(xiàn)的維尼吉亞密碼算法示例

    Python實(shí)現(xiàn)的維尼吉亞密碼算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的維尼吉亞密碼算法,結(jié)合實(shí)例形式分析了基于Python實(shí)現(xiàn)維尼吉亞密碼算法的定義與使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Flask框架使用DBUtils模塊連接數(shù)據(jù)庫(kù)操作示例

    Flask框架使用DBUtils模塊連接數(shù)據(jù)庫(kù)操作示例

    這篇文章主要介紹了Flask框架使用DBUtils模塊連接數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了flask框架使用DBUtils模塊連接數(shù)據(jù)庫(kù)的常見(jiàn)操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • 關(guān)于Python中Inf與Nan的判斷問(wèn)題詳解

    關(guān)于Python中Inf與Nan的判斷問(wèn)題詳解

    這篇文章主要介紹了關(guān)于Python中Inf與Nan的判斷問(wèn)題,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • python通過(guò)socket搭建極簡(jiǎn)web服務(wù)器的實(shí)現(xiàn)代碼

    python通過(guò)socket搭建極簡(jiǎn)web服務(wù)器的實(shí)現(xiàn)代碼

    python的web框架眾多,常見(jiàn)的如django、flask、tornado等,其底層是什么還是有些許的疑問(wèn),所以查找相關(guān)資料,實(shí)現(xiàn)瀏覽器訪問(wèn),并返回相關(guān)信息,本文將給大家介紹python通過(guò)socket搭建極簡(jiǎn)web服務(wù)器,需要的朋友可以參考下
    2023-10-10
  • python 元組的使用方法

    python 元組的使用方法

    這篇文章主要介紹了python 元組的使用方法,文中講解非常細(xì)致,代碼幫助大家更好的參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Python的字符串示例講解

    Python的字符串示例講解

    本文重點(diǎn)講解字符串的創(chuàng)建,字符串的定義和字符串的常見(jiàn)操作,對(duì)Python的字符串不熟悉的同學(xué)隨小編一起學(xué)習(xí)吧!
    2021-04-04
  • Python中針對(duì)函數(shù)處理的特殊方法

    Python中針對(duì)函數(shù)處理的特殊方法

    Python內(nèi)置了一些非常有趣但非常有用的函數(shù),充分體現(xiàn)了Python的語(yǔ)言魅力
    2014-03-03
  • 基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例

    基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例

    這篇文章主要介紹了基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

定远县| 屏南县| 东山县| 兴化市| 峨山| 渝北区| 海丰县| 绥德县| 商丘市| 晋江市| 昌宁县| 北宁市| 溆浦县| 井陉县| 唐山市| 嵩明县| 海原县| 延川县| 镇巴县| 桐城市| 沅江市| 扎鲁特旗| 资阳市| 安乡县| 滦平县| 蓬安县| 桃江县| 陈巴尔虎旗| 荣昌县| 绿春县| 永和县| 蓝山县| 繁峙县| 远安县| 海门市| 多伦县| 鹿邑县| 阿城市| 海南省| 舒城县| 蕲春县|