python dict字典

mapping 對象會將 hashable 值映射到任意對象。 映射屬于可變對象。 目前僅有一種標準映射類型 字典。 (關于其他容器對象請參看 list, set 與 tuple 等內置類,以及 collections 模塊。)

字典的鍵 幾乎 可以為任何值。 不是 hashable 的值,即包含列表、字典或其他可變類型(按值比較而非按對象標識比較)的值不可被用作鍵。 比較結果相等的值(如 1, 1.0 和 True 等)可被互換使用以索引同一個字典條目。

文章目錄

  • 前言
    • 在 Python 中,dict 是一種數據結構,也稱為字典(Dictionary),用于存儲鍵值對(key-value pairs)的集合。字典是一種可變的、無序的、以鍵為索引的集合,其中每個鍵必須是唯一的,但值則不必唯一。
  • 一、dict是什么?
  • 二、使用步驟
    • 1.基本操作(增刪查改)
  • 創建字典
  • 訪問字典元素
  • 修改字典元素
  • 添加字典元素
  • 刪除字典元素
  • 判斷字典是否為空
  • 遍歷字典
  • 2.常用方法
  • 1.clear():清空字典
  • 2.copy():復制字典
  • 3.fromkeys():創建指定鍵的字典,是一個類方法,參數為序列或迭代器,默認參數是None
  • 4.get():獲取指定鍵的值
  • 5.items():以列表返回可遍歷的(鍵, 值) 元組數組
  • 6.keys():以列表返回字典所有的鍵
  • 7.values():以列表返回字典所有的值
  • 8.pop():刪除指定鍵的值,并返回該值
  • 9.popitem():隨機刪除一個鍵-值對,并返回該鍵-值對
  • 10.setdefault():設置默認值
  • 11.update():更新字典
  • 12.并集運算符 |
  • 總結


前言

在 Python 中,dict 是一種數據結構,也稱為字典(Dictionary),用于存儲鍵值對(key-value pairs)的集合。字典是一種可變的、無序的、以鍵為索引的集合,其中每個鍵必須是唯一的,但值則不必唯一。

提示:以下是本篇文章正文內容,下面案例可供參考

一、dict是什么?

在 Python 中,dict 是一種數據結構,也稱為字典(Dictionary),用于存儲鍵值對(key-value pairs)的集合。字典是一種可變的、無序的、以鍵為索引的集合,其中每個鍵必須是唯一的,但值則不必唯一。

字典的特點包括:

無序性:字典中的鍵值對沒有固定的順序,不像列表或元組有順序。
鍵的唯一性:字典中的鍵必須是唯一的,如果重復賦值給同一個鍵,則會覆蓋原來的值。
可變性:字典是可變的,可以修改、添加或刪除鍵值對。

二、使用步驟

1.基本操作(增刪查改)

代碼如下(示例):

創建字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
#創建空字典
dict2 = {}
print(dict2)

訪問字典元素

print(dict1['name'])  # 輸出:Alice

修改字典元素

dict1['age'] = 26
print(dict1['age'])  # 輸出:26

添加字典元素

dict1['gender'] = 'female'
print(dict1)  # 輸出:{'name': 'Alice', 'age': 26, 'city': 'Beijing', 'gender': 'female'}

刪除字典元素

del dict1['city']
print(dict1)  # 輸出:{'name': 'Alice', 'age': 26, 'gender': 'female'}、

判斷字典是否為空

if not dict1:print('字典為空')  # 輸出:字典為空else:print('字典不為空')  # 輸出:字典不為空

遍歷字典

for key in dict1:print(key, ':', dict1[key])  # 輸出:name : Alice、age : 26、gender : female
for k,v in dict1.items():print(k, ':', v)  # 輸出:name : Alice、age : 26、gender : female
#dict()使用方法,里面的參數是2元組或者函數的參數
dict3 = dict(name='Bob', age=30, city='Shanghai')
print(dict3)  # 輸出:{'name': 'Bob', 'age': 30, 'city': 'Shanghai'}
list1 = [('name', 'Tom'), ('age', 35), ('city', 'Guangzhou')]
dict4 = dict(list1)
print(dict4)  # 輸出:{'name': 'Tom', 'age': 35, 'city': 'Guangzhou'}

2.常用方法

字典的常用方法

1.clear():清空字典

python dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} dict1.clear() print(dict1)  # 輸出:{}

2.copy():復制字典

dict1= {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = dict1.copy()
print(dict2)  # 輸出:{'name': 'Alice', 'age': 25, 'city': 'Beijing'}

3.fromkeys():創建指定鍵的字典,是一個類方法,參數為序列或迭代器,默認參數是None

dict.fromkeys(['name', 'age', 'city'], 'unknown')  # 輸出:{'name': 'unknown', 'age': 'unknown', 'city': 'unknown'}
d=dict.fromkeys(range(3))
print("d=",d)#輸出:d= {0: None, 1: None, 2: None}

4.get():獲取指定鍵的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.get('name'))  # 輸出:Alice
print(dict1.get('gender', 'unknown'))  # 輸出:unknown,不存在返回默認值,沒有默認值返回None

5.items():以列表返回可遍歷的(鍵, 值) 元組數組

6.keys():以列表返回字典所有的鍵

7.values():以列表返回字典所有的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} 
print(dict1.items())  # 輸出:dict_items([('name', 'Alice'), ('age', 25), ('city', 'Beijing')])
print(dict1.keys())  # 輸出:dict_keys(['name', 'age', 'city'])
print(dict1.values())  # 輸出:dict_values(['Alice', 25, 'Beijing'])

8.pop():刪除指定鍵的值,并返回該值


```python
dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} print(dict1.pop('name'))  # 輸出:Alice print(dict1)  # 輸出:{'age': 25, 'city': 'Beijing'}

9.popitem():隨機刪除一個鍵-值對,并返回該鍵-值對

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.popitem())  # 輸出:('city', 'Beijing')
print(dict1)  # 輸出:{'name': 'Alice', 'age': 25}

10.setdefault():設置默認值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.setdefault('gender', 'unknown'))  # 輸出:unknown
print(dict1)  # 輸出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gend`er': 'unknown'}`

11.update():更新字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict1.update(dict2)
print(dict1)  # 輸出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}

12.并集運算符 |

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict3 = dict1 | dict2
print(dict3)  # 輸出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}

總結

字典的鍵必須是不可變對象,如字符串、數字、元組等,而值則可以是任意對象。
字典是一種可變容器,可以隨時添加、刪除或修改元素。
字典的鍵是通過哈希算法計算出來的,所以字典的查找速度非常快。
字典是一種映射類型,它的元素是鍵-值對。
字典的創建格式是{key1:value1, key2:value2,…, keyn:valuen}。
字典的鍵必須是不可變對象,而值可以是任意對象。
字典的鍵必須是唯一的,不能重復。
字典的鍵不能改變,但可以重新賦值。

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

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

相關文章

2024.05.14 校招 實習 內推 面經

綠*泡*泡VX: neituijunsir 交流*裙 ,內推/實習/校招匯總表格 1、校招 | 中核集團2025屆校園招聘提前批正式啟動! 校招 | 中核集團2025屆校園招聘提前批正式啟動! 2、實習 | 嵐圖汽車校園實習生招聘 實習 | 嵐圖汽車校園實習生…

達夢 結果拼接=多行結果返回一列字符串.

sql 轉換 查詢出多行數據 (select t.PROPERTY from JD_CODING t left join DELIVERY_OF c on t.VALUE c.TYPE where t.PROPERTY stackingType group by t.PROPERTY) 更改后 轉為一列的拼接字符串 ( select listagg( distinct t.PROPERTY,,) within group ( order by t.P…

MiniPCIe/SATA雙用插槽無法識別minipcie模塊怎么回事!

在計算機和嵌入式系統設計中,MiniPCIe/SATA雙用插槽作為一種高度集成的解決方案,提供了極大的靈活性與擴展能力。它不僅能夠支持MiniPCIe接口的無線網卡、固態硬盤控制器等模塊,還能適應SATA接口的硬盤或固態存儲設備,大大豐富了系統配置的可能性。盡管設計初衷良好,但在實…

bert模型用于二分類問題微調

使用bert-base-chinese預訓練模型對二分類問題進行微調 import pandas as pd from transformers import BertTokenizerFast, AutoModelForSequenceClassification, Trainer, TrainingArguments import torchmodel_name "./bert-base-chinese" path "./abuse_…

STP19NF20 絲印 19NF20 場效應管19A 200V 直插 TO-220

STP19NF20 功率MOSFET的應用領域相當廣泛,主要包括: 1. 電源管理:用于高效率電源管理電路,如直流-直流轉換器和交流-直流電源適配器。 2. 開關模式電源(SMPS):在需要高效能和緊湊型尺寸的開關…

Ceph相關命令

關于osd自動重啟 /etc/crontab里面每隔2分鐘會調用 /etc/cron.daily/keep_osd.sh關閉osd 1 mv /etc/cron.daily/keep_osd.sh /etc/cron.daily/keep_osd.sh_back 2 systemctl stop ceph-osd0.service查看osd的參數 ceph daemon osd.0 config show |grep osd_op_num動態修改…

【學習】軟件測試小伙伴,這幾點助你提升軟件測試水平

在數字化時代,軟件已經無處不在,影響著我們的日常生活、工作乃至整個社會的運行。在這個背景下,軟件測試成為確保產品質量的關鍵環節,關乎用戶體驗和社會信任。本文將為您梳理一些關于軟件測試你必須了解的知識點,并闡…

JAVAEE之多線程進階(2)_ CAS概念、實現原理、ABA問題及解決方案

前言 在并發編程時,常常會出現線程安全問題,那么如何保證原子性呢?常用的方法就是加鎖。在Java語言中可以使用 Synchronized和CAS實現加鎖效果。 ?Synchronized關鍵字保證同步的,這會導致有鎖,但是鎖機制存在以下問題…

判斷GIF類型并使用ImageDecoder解析GIF圖

一、判斷是否為GIF圖片類型 在JavaScript中,判斷用戶上傳的文件是否為GIF文件類型時,通常可以通過檢查文件的type屬性或文件的拓展名來判斷,但是由于文件拓展名可以輕易被用戶修改,type屬性是由瀏覽器根據文件拓展名猜測得出的&a…

douyin-vue:使用Vue3、Pinia和Vite5打造高度還原的抖音仿制項目

一:引言 在前端技術日新月異的今天,Vue.js作為一款流行的前端框架,不斷吸引著開發者的目光。最近,GitHub上出現了一個備受矚目的項目——douyin-vue,這是一個基于Vue3、Pinia和Vite5的移動端短視頻項目,旨…

[解決]windows mysql8.0.x誤刪除root,解決辦法

1. 停止mysql服務 2. 以管理員身份打開命令窗口,進入到mysql安裝位置的bin目錄下 3. 輸入 mysqld --console --skip-grant-tables --shared-memory 注意:a. 很多解決辦法是輸入mysqld --skip-grant-tables,這在mysql8.0之后的版本已經不在…

ASPICE標準:汽車軟件與嵌入式系統開發的黃金準則-亞遠景

在高度信息化的現代社會,汽車行業的發展已遠超過傳統的機械和動力系統,汽車電子和軟件系統的重要性日益凸顯。為了確保汽車軟件的質量和可靠性,汽車行業需要一套統一且高效的開發標準。ASPICE(Automotive SPICE)標準應…

通過ESP32芯片模組實現產品智能化升級,啟明云端樂鑫代理商

隨著科技的不斷進步,物聯網(IoT)已經滲透到我們生活的方方面面,成為現代生活不可或缺的一部分。在這場智能化革命中,樂鑫科技以其創新的ESP32芯片模組,為智能家居和智能設備的發展注入了新的活力。作為樂鑫…

msi安裝mysql8 啟動失敗,提示只有在任務處于完成狀態(RanToCompletion、Faulted 或 Canceled)時才能釋放它。

解決方案: 1.打開服務,找到安裝的mysql 2. 右擊,打開屬性,進入【登錄】選項卡,選擇本地系統賬戶。 3. 點擊確定-->應用 4.服務中選擇開始服務 5.服務啟動成功后,在安裝步驟中繼續點擊執行

Post Microsoft Build and AI Day 上海開發者日

點擊藍字 關注我們 編輯:Alan Wang 排版:Rani Sun 這個六一怎么過?來微軟 Reactor,一起過兒童節吧! 6月1日,Microsoft Azure & Microsoft Reactor 面向大小朋友特別推出六一特輯,「Post Mic…

開源進銷存系統

推薦一款開源的進銷存系統 項目地址:進銷存系統 倉庫管理系統 SAAS進銷存 進銷存ERP: 進銷存系統 倉庫管理系統 SAAS進銷存 進銷存ERPhttps://gitee.com/flyemu/jxc.git 主要功能模塊 銷售 采購 庫存 資料 設置 支持saas多租戶,100%開源可二開 …

前端項目上線要準備哪些問題?

上線前 一般開發過程中,會準備好幾條線路,一個是測試環境,一個是正式環境;如果是公司比較大,在此外還會增加一個環境-預上線。 預上線,就是所有的設備,環境,條件和正式線的環境都是一…

iPhone用戶推薦使用的藏漢翻譯小助手:藏漢翻譯通小程序,支持藏文OCR識別文字提取,衛藏語、安多語、康巴語學習背單詞!

網上沖浪時,遇到不會的漢語詞匯,可以復制到藏漢翻譯通小程序中進行翻譯。如果不會拼音,可以使用圖片識別功能掃一掃文字,即可OCR識別提取文字。 此外,藏漢翻譯通小程序現在還支持背單詞和會話速成課程,支持…

C# BurnServiceContractClient 使用方法

目錄 1. 添加服務引用 2. 使用客戶端進行操作 3. 配置文件(App.config) 4. 異步調用 總結 要在C#中使用BurnServiceContractClient,首先需要了解該客戶端的使用場景和目標服務契約。假設BurnServiceContractClient是一個WCF(W…

混元助手 mysql建表語句轉換oracle

提示語 mysql建表語句轉換成oracle,并且有common SQL語句的生成: create ....