Python字典的查詢操作

一、前言

在 Python 中,字典(dict) 是一種非常常用的數據結構,以鍵值對(Key-Value Pair)形式存儲數據,支持快速查找、插入和刪除操作。

本文將系統性地介紹 Python 字典中常見的查詢操作方法,包括如何訪問元素、判斷鍵是否存在、獲取所有鍵/值/項、遍歷查詢等,并結合大量代碼示例幫助你全面掌握字典查詢的核心技能。

二、基本查詢操作

1. 使用方括號?[]?查詢指定鍵的值

這是最直接的查詢方式:

student = {'name': 'Alice', 'age': 20, 'major': 'Computer Science'}
print(student['name'])   # Alice
print(student['age'])    # 20

?? 如果鍵不存在,會拋出 KeyError 異常。

2. 使用?.get()?方法安全查詢

推薦用于避免程序崩潰:

print(student.get('name'))       # Alice
print(student.get('gender'))     # None
print(student.get('gender', 'not found'))  # not found

? 特點:

  • 鍵不存在時返回?None?或自定義默認值;
  • 更加健壯,推薦在實際開發中優先使用。

3. 判斷某個鍵是否存在:in?關鍵字

if 'age' in student:print("年齡信息存在")
else:print("年齡信息不存在")

? 避免 KeyError,是查詢前檢查的常用方式。

4. 獲取所有鍵、值、鍵值對

方法描述
.keys()返回所有鍵
.values()返回所有值
.items()返回鍵值對元組列表
print(student.keys())    # dict_keys(['name', 'age', 'major'])
print(student.values())  # dict_values(['Alice', 20, 'Computer Science'])
print(student.items())   # dict_items([('name', 'Alice'), ('age', 20), ('major', 'Computer Science')])

你可以將其轉換為列表進行進一步處理:

keys_list = list(student.keys())
print(keys_list)  # ['name', 'age', 'major']

三、進階查詢技巧

1. 遍歷字典查詢

(1)只遍歷鍵
for key in student:print(key)
(2)同時遍歷鍵和值
for key, value in student.items():print(f"{key}: {value}")

輸出:

name: Alice
age: 20
major: Computer Science

2. 查詢多個鍵的值(可選默認值)

def get_multiple(d, keys, default=None):return [d.get(k, default) for k in keys]result = get_multiple(student, ['name', 'gender', 'age'], 'unknown')
print(result)  # ['Alice', 'unknown', 20]

3. 多層嵌套字典的查詢

當字典結構復雜時,可以通過鏈式訪問或使用 get() 層層查詢:

data = {'user': {'id': 1,'profile': {'name': 'Bob','email': 'bob@example.com'}}
}# 普通訪問
print(data['user']['profile']['name'])  # Bob# 安全訪問
print(data.get('user', {}).get('profile', {}).get('name'))  # Bob
print(data.get('user', {}).get('profile', {}).get('gender', 'not found'))  # not found

4. 查詢滿足條件的鍵值對(字典推導式)

可以使用字典推導式來篩選符合條件的鍵值對:

scores = {'math': 90, 'english': 75, 'physics': 85, 'chemistry': 60}
high_scores = {k: v for k, v in scores.items() if v >= 80}
print(high_scores)  # {'math': 90, 'physics': 85}

四、常見問題與注意事項

問題原因解決方法
報錯:KeyError訪問了不存在的鍵使用?.get()?或先用?in?檢查
查詢結果為 None鍵不存在且未設置默認值設置默認值參數
遍歷時修改字典報錯在遍歷過程中刪除或添加鍵值對使用副本遍歷:list(dict.items())
嵌套字典訪問出錯未判斷中間層級是否存在使用多重?.get()?或函數封裝

五、總結對比表

操作方法是否安全是否返回值說明
查詢鍵值d[key]??鍵必須存在,否則拋異常
安全查詢d.get(key, default)??推薦使用
判斷鍵是否存在key in d??推薦作為前置判斷
獲取所有鍵d.keys()??可轉為列表處理
獲取所有值d.values()??可用于統計
獲取所有鍵值對d.items()??遍歷最佳方式
遍歷查詢for key in d:?/?for k, v in d.items():??支持多種遍歷方式
多條件篩選字典推導式??靈活高效
嵌套查詢鏈式?.get()??推薦寫法

六、結語

感謝您的閱讀!如果你有任何疑問或想要分享的經驗,請在評論區留言交流!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912317.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912317.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912317.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pyhton基礎【18】面向對象基礎一

目錄 一.面向對象 二.面向對象概述 三.類與對象 一.面向對象 Python中的面向對象編程OOP是一種編程范式,它使用對象來設計軟件。對象是具有屬性(稱為屬性)和可以執行的操作(稱為方法)的數據結構。 基礎概念 類:class 類是創建對象的藍圖或模板。它…

Requests源碼分析:面試考察角度自驗(初級)

簡單描述執行流程 Q:能簡單描述一下發送一個requests.get(url)請求時,在requests庫內部的主要執行流程嗎?(從調用get方法到收到響應) 入口委托: get() 方法內部調用 requests.request(GET, url)。Session 接管: request() 方法會獲取或隱式創建一個 Session 對象,并調用…

鴻蒙5:條件-循環-列表渲染

注意:博主有個鴻蒙專欄,里面從上到下有關于鴻蒙next的教學文檔,大家感興趣可以學習下 如果大家覺得博主文章寫的好的話,可以點下關注,博主會一直更新鴻蒙next相關知識 專欄地址: https://blog.csdn.net/qq_56760790/…

淺談AI大模型-MCP

MCP簡介 MCP(Model Context Protocol,模型上下文協議 ),24年11月初的時候Anthropic發了一篇技術博客,推出了他們的模型上下文協議MCP,介紹了一種規范:應用如何為LLM提供上下文。官網稱MCP為AI應…

MySQL數據庫基礎概述

前言: MySQL作為全球應用最廣泛的開源關系型數據庫管理系統(RDBMS)?,憑借其高性能、高可靠性與零成本特性,已成為Web應用、企業系統的核心數據引擎。它遵循SQL標準,通過表結構實現數據的結構化存儲&#x…

桌面小屏幕實戰課程:DesktopScreen 16 HTTP

飛書文檔http://https://x509p6c8to.feishu.cn/docx/doxcnrxBs55qGn6xoysTcJpqwRf /home/kemp/work/esp/esp-idf/examples/protocols/http_request 源碼下載方式參考: 源碼下載方式 心知天氣 注冊賬號,申請產品,獲取密鑰 產品 天氣數據 H…

vs2019 + QT下 vs2019創建的項目打開ui文件失敗

問題: 在vs2019 QT模式下。使用2019創建工程后。點擊ui文件打開時。出現奔潰,如下圖 解決方式: ui文件->右鍵->打開方式->添加->程序->點擊三個點->qcreator(qt安裝目錄) ->設置為默認值->確定 點擊設置為默認值,點…

WPS之PPT鏤空效果實現

1、準備一張圖片,剪切存入剪貼板 2、把圖片設為背景 右鍵 》 設置背景格式 》 圖片或紋理填充 》 圖片填充選擇剪貼板 3、插入一個矩形覆蓋全圖,設置無線條漸變填充從左到右 4、插入圓角矩形 5、單擊小黃點調整弧度 6、選擇無線條幻燈片背景填充 7、插…

服務注冊中心的本質抉擇:從業務本質看AP與CP的終極之選

本文從服務注冊中心的本質職責出發,通過分析其核心功能、業務場景和技術約束,深入探討服務注冊中心在架構設計上應該優先保證AP還是CP特性。文章首先剖析服務注冊中心的根本使命,然后從分布式系統原理、生產實踐案例和性能表現三個維度進行對…

mybatis-plus從入門到入土(一):快速開始

? 朋友們, 大家好, 從今天開始我想開一個系列博客。名字起的比較隨意就叫Mybatis-Plus從入門到入土, 這系列博客的定位是從基礎使用開始, 然后逐步深入全面的了解Mybatis-Plus框架, 寫這個博客的主要原因是工作中經常用到Mybatis-Plus框架, 因而對這個框架相對比較了解一些, 順…

如何快速將iPhone中的文本保存到電腦上

您的 iPhone 上是否有很多重要的短信,并且您想將短信備份到計算機上?我們都知道傳輸消息與傳輸照片不同,但幸運的是,您可以使用相關的工具和方法來實現。我們介紹了 4 種方法來解釋如何將 iPhone 中的文本保存到計算機。所有的辦法…

【OpenGL學習】(八)圖形變換

OpenGL圖形變換介紹:https://learnopengl-cn.github.io/01%20Getting%20started/07%20Transformations 【OpenGL學習】(八)圖形變換 本項目將通過變換矩陣,對【OpenGL學習】(七)紋理單元 中的圖形進行縮放…

從理論到實戰:解密大型語言模型的核心技術與應用指南

一、Transformer:語言理解與生成的基石 Transformer 架構的出現,徹底改變了自然語言處理(NLP)的格局。它以“注意力”為核心,將全局依賴的捕捉效率推向新高。下面用 圖簡要概覽其數據流: 從上圖可見&#…

kali換源

在Kali Linux中切換軟件源可以提高軟件下載速度,下面為你介紹切換源的方法。 一、備份原配置文件 首先備份原配置文件,避免操作失誤導致問題: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak二、編輯源配置文件 使用以下命令編…

從決策樹到隨機森林:Python機器學習里的“樹形家族“深度實戰與原理拆解

引言 在機器學習的算法森林中,有一對"樹形兄弟"始終占據著C位——決策樹像個邏輯清晰的"老教授",用可視化的樹狀結構把復雜決策過程拆解成"是/否"的簡單判斷;而它的進階版隨機森林更像一支"精英軍團&quo…

uniapp,每次請求時,中斷上次請求

1.封裝uni.request import {BASE_URL} from "/config/config.js"import store from "/store/index.js"; class RequestManager {constructor() {this.requestTasks new Map() // 存儲所有請求任務this.baseURL BASE_URLthis.header {Content-Type: app…

DuDuTalk | 武漢賽思云科技有限公司通過武漢市人工智能企業認定!

近日,2025年武漢市人工智能企業名單正式公布!武漢賽思云科技有限公司(以下簡稱賽思云科技)憑借卓越的技術實力與創新成果,成功入選武漢市人工智能企業。這是對公司長期深耕AI語音智能領域、推動數字化轉型的高度認可&a…

STM32實現傅里葉變換精確計算采樣電流值

以下是基于離散傅里葉變換(DFT)算法在單片機上實現精確電流值計算的全流程指南,結合硬件選型、算法優化、代碼實現及實際應用場景分析,綜合多篇技術文檔的實踐要點: ?? 一、系統設計核心要點 硬件選型與配置 單片機選擇:優先采用帶硬件浮點單元(FPU)的STM32F4/F7系列…

python 爬蟲 下載視頻

測試 OK II 在開發者工具里面 直接搜索m3u8 可以直接找相對應連接地址繼續分析 這個m3u8 url地址是從哪里過來的 在什么地方有 III 我們想要視頻數據 <m3u8連接> 在 網頁源代碼里面有獲取整個視頻內容 --》分為N個視頻片段《ts文件》-->在m3u8連接里面--> 視頻播放…

希爾伯特空間:無窮維度的幾何世界

希爾伯特空間&#xff1a;無窮維度的幾何世界 從量子物理到信號處理&#xff0c;希爾伯特空間為現代科學與工程提供了強大的數學框架 引言&#xff1a;無限維度的舞臺 在數學和物理學的廣闊領域中&#xff0c;希爾伯特空間扮演著至關重要的角色。這個完備的內積空間不僅推廣了…