python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)
前言
字典(Dictionary)是Python中一種非常靈活的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(key-value pairs)。在Python中創(chuàng)建字典有多種方法,每種方法都有其特定的使用場景和優(yōu)勢。
本文將詳細(xì)介紹Python中創(chuàng)建字典的幾種常見方法,包括相關(guān)知識講解、代碼示例以及實(shí)際應(yīng)用案例。
一、字典特點(diǎn)
字典是一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對象,包括數(shù)字、字符串、列表、元組、甚至其他字典。
字典的每個(gè)鍵值對用冒號:分隔,每個(gè)對之間用逗號,分隔,整個(gè)字典包括在花括號{}中。
字典包含如下特點(diǎn):
- 無序性:Python 3.6之前的版本中,字典是無序的,但3.7及之后版本中,字典是按照插入順序存儲(chǔ)的。
- 可變性:字典的內(nèi)容可以被修改。
- 唯一性:字典中的鍵是唯一的。
二、創(chuàng)建字典方法
方法一:花括號直接創(chuàng)建
# 基本用法 my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'} # 空字典 empty_dict = {}
方法二:dict()構(gòu)造函數(shù)
# 從鍵值對元組列表創(chuàng)建 items = [('name', 'Bob'), ('age', 30), ('city', 'Los Angeles')] my_dict = dict(items) # 直接使用關(guān)鍵字參數(shù) my_dict = dict(name='Charlie', age=35, city='Chicago')
方法三:字典推導(dǎo)式
# 根據(jù)列表生成字典 numbers = [1, 2, 3, 4] my_dict = {num: num**2 for num in numbers}
方法四:collections模塊
from collections import defaultdict, OrderedDict # 默認(rèn)值字典 dd = defaultdict(lambda: 'N/A') dd['key1'] = 'value1' print(dd) # 輸出:defaultdict(<function <lambda> at ...>, {'key1': 'value1'}) # 有序字典 od = OrderedDict() od['one'] = 1 od['two'] = 2 od.move_to_end('one') # 將'one'移動(dòng)到末尾
方法五:直接創(chuàng)建空字典
dic = {} print(type(dic)) # 輸出結(jié)果:<class 'dict'>
方法六:通過dict和zip創(chuàng)建
dic = dict(zip('abc', [1, 2, 3])) print(dic) # 輸出結(jié)果:{'a': 1, 'b': 2, 'c': 3}
方法七:fromkeys()創(chuàng)建
dic = dict.fromkeys(range(4), 'x') print(dic) # 輸出結(jié)果:{0: 'x', 1: 'x', 2: 'x', 3: 'x'}
三、應(yīng)用案例
案例一:使用字典存儲(chǔ)用戶信息
# 創(chuàng)建用戶信息字典 user_info = { 'username': 'john_doe', 'email': 'john@example.com', 'signup_date': '2024-06-08' } # 更新用戶信息 user_info['email'] = 'new_john@example.com' # 訪問用戶信息 print(user_info['username'])
案例二:使用defaultdict處理不完整的數(shù)據(jù)
# 假設(shè)我們有一個(gè)包含不完整數(shù)據(jù)的列表 data = ['name', 'age', 'city', 'name', 'email'] # 使用defaultdict自動(dòng)填充缺失數(shù)據(jù) info = defaultdict(str) for item in data: key, value = item, info[item] if item in info else 'Not provided' info[key] = value print(info)
案例三:使用字典推導(dǎo)式生成冪次方字典
# 創(chuàng)建一個(gè)字典,其中包含數(shù)字及其平方 squares = {x: x**2 for x in range(6)} print(squares)
過程中的注意事項(xiàng)
字典的鍵必須是不可變類型,如字符串、數(shù)字或元組。
在Python 3.7+中,字典保持插入順序,但這不是語言規(guī)范的一部分,因此依賴此特性可能存在風(fēng)險(xiǎn)。
使用defaultdict和OrderedDict時(shí),需要從collections模塊導(dǎo)入。
總結(jié)
到此這篇關(guān)于python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)的文章就介紹到這了,更多相關(guān)python創(chuàng)建字典(dict)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python超有趣實(shí)例通過冒泡排序來實(shí)現(xiàn)LOL厄斐琉斯控槍
冒泡排序是一種簡單的排序算法,它也是一種穩(wěn)定排序算法。其實(shí)現(xiàn)原理是重復(fù)掃描待排序序列,并比較每一對相鄰的元素,當(dāng)該對元素順序不正確時(shí)進(jìn)行交換。一直重復(fù)這個(gè)過程,直到?jīng)]有任何兩個(gè)相鄰元素可以交換,就表明完成了排序2022-05-05Python獲取網(wǎng)絡(luò)時(shí)間戳的兩種方法詳解
在我們進(jìn)行注冊碼的有效期驗(yàn)證時(shí),通常使用獲取網(wǎng)絡(luò)時(shí)間的方式來進(jìn)行比對。本文將介紹兩種利用Python獲取網(wǎng)絡(luò)時(shí)間戳的方法,感興趣的可以了解一下2022-01-01PyTorch使用torch.nn.Module模塊自定義模型結(jié)構(gòu)方式
這篇文章主要介紹了PyTorch使用torch.nn.Module模塊自定義模型結(jié)構(gòu)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02如何使用?Python?實(shí)現(xiàn)?DeepSeek?R1?本地化部署
文章介紹了如何使用Python實(shí)現(xiàn)DeepSeekR1本地化部署,包括硬件環(huán)境、Python環(huán)境、安裝依賴包、配置與運(yùn)行代碼等步驟,幫助讀者輕松部署并運(yùn)行本地AI助手,感興趣的朋友一起看看吧2025-02-02Python和Anaconda和Pycharm安裝教程圖文詳解
PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,這篇文章主要介紹了Python和Anaconda和Pycharm安裝教程,需要的朋友可以參考下2020-02-02Android模擬器無法啟動(dòng),報(bào)錯(cuò):Cannot set up guest memory ‘a(chǎn)ndroid_arm’ I
這篇文章主要介紹了Android模擬器無法啟動(dòng),報(bào)錯(cuò):Cannot set up guest memory ‘a(chǎn)ndroid_arm’ Invalid argument的解決方法,通過模擬器ram設(shè)置的調(diào)整予以解決,需要的朋友可以參考下2016-07-07python面向?qū)ο蠡A(chǔ)之常用魔術(shù)方法
這是我聽老師上課做的筆記,文中有非常詳細(xì)的代碼示例及注釋,對新手及其友好,對正在學(xué)習(xí)python的小伙伴們也很有幫助,需要的朋友可以參考下2021-05-05使用Python+Splinter自動(dòng)刷新12306火車票
一年一度的春運(yùn)又來了,今年我自己寫了個(gè)搶票腳本,下面小編給大家分享使用Python+Splinter自動(dòng)刷新12306火車票,需要的朋友參考下吧2018-01-01