Python中的字典一鍵多值的四種寫(xiě)法小結(jié)
1. 背景介紹
在 Python 中,字典的鍵是唯一的,但可以通過(guò)將值與列表、集合等數(shù)據(jù)結(jié)構(gòu)結(jié)合,實(shí)現(xiàn)一個(gè)鍵對(duì)應(yīng)多個(gè)值。以下是幾種常見(jiàn)寫(xiě)法:
2. 方法1—使用列表存儲(chǔ)多個(gè)值
my_dict = {}
# 添加值
my_dict.setdefault('key1', []).append('value1')
my_dict.setdefault('key1', []).append('value2')
# 結(jié)果
print(my_dict) # 輸出: {'key1': ['value1', 'value2']}
3. 方法2—使用集合存儲(chǔ)多個(gè)值(確保唯一性)
my_dict = {}
# 添加值
my_dict.setdefault('key1', set()).add('value1')
my_dict.setdefault('key1', set()).add('value2')
my_dict.setdefault('key1', set()).add('value1') # 重復(fù)值不會(huì)被添加
# 結(jié)果
print(my_dict) # 輸出: {'key1': {'value1', 'value2'}}
4. 方法3—使用 defaultdict 簡(jiǎn)化操作
from collections import defaultdict
# 使用列表
my_dict = defaultdict(list)
my_dict['key1'].append('value1')
my_dict['key1'].append('value2')
print(my_dict) # 輸出: defaultdict(<class 'list'>, {'key1': ['value1', 'value2']})
# 使用集合
my_dict = defaultdict(set)
my_dict['key1'].add('value1')
my_dict['key1'].add('value2')
my_dict['key1'].add('value1') # 重復(fù)值不會(huì)被添加
print(my_dict) # 輸出: defaultdict(<class 'set'>, {'key1': {'value1', 'value2'}})
5. 方法4—手動(dòng)檢查鍵是否存在
my_dict = {}
# 添加值
if 'key1' not in my_dict:
my_dict['key1'] = []
my_dict['key1'].append('value1')
my_dict['key1'].append('value2')
print(my_dict) # 輸出: {'key1': ['value1', 'value2']}
6.方法補(bǔ)充
python 字典一鍵賦多值
方案一:
(1) list作為dict的值,值允許重復(fù),append添加值
key = 0 value = [1,5] exp = dict() exp.setdefault(key,[]).append(value) value = [2,5] exp.setdefault(key,[]).append(value) print(exp)
輸出:
{0: [[1, 5], [2, 5]]}
(2)set作為dict的值,值不允許重復(fù),add添加值
key = 0 value = 1 exp = dict() exp.setdefault(key,set()).add(value) value = 2 exp.setdefault(key,set()).add(value) print(exp)
輸出:
{0: {1, 2}}
方案二:
使用collections.defaultdict方法
(1)collections.defaultdict(list),值可以重復(fù)
import collections key = 0 value = 1 exp = collections.defaultdict(list) exp[key].append(value) value = 1 exp[key].append(value) print(exp)
輸出:
defaultdict(<class 'list'>, {0: [1, 1]})
(2)collections.defaultdict(set),值不允許重復(fù)
import collections key = 0 value = 1 exp = collections.defaultdict(set) exp[key].add(value) value = 1 exp[key].add(value) value = 5 exp[key].add(value) print(exp)
輸出:
defaultdict(<class 'set'>, {0: {1, 5}})
到此這篇關(guān)于Python中的字典一鍵多值的四種寫(xiě)法小結(jié)的文章就介紹到這了,更多相關(guān)Python字典一鍵多值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中對(duì)元組和列表按條件進(jìn)行排序的方法示例
這篇文章主要介紹了Python中對(duì)元組和列表按條件進(jìn)行排序的方法示例,需要的朋友可以參考下2015-11-11
APIStar:一個(gè)專為Python3設(shè)計(jì)的API框架
今天小編就為大家分享一篇關(guān)于一個(gè)專為Python3設(shè)計(jì)的API框架:APIStar,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09
libreoffice python 操作word及excel文檔的方法
這篇文章主要介紹了libreoffice python 操作word及excel文檔的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Matplotlib實(shí)現(xiàn)subplot和subplots簡(jiǎn)單對(duì)比
在畫(huà)布創(chuàng)建子圖會(huì)有很多方法,本文主要介紹了Matplotlib實(shí)現(xiàn)subplot和subplots簡(jiǎn)單對(duì)比,簡(jiǎn)單的介紹了這兩種方法區(qū)別,感興趣的可以了解一下2021-05-05
Python編寫(xiě)一個(gè)代碼規(guī)范自動(dòng)檢查工具
在Python開(kāi)發(fā)中,代碼規(guī)范對(duì)于項(xiàng)目的可維護(hù)性和團(tuán)隊(duì)協(xié)作效率至關(guān)重要,本文介紹一個(gè)基于AST的Python import語(yǔ)句位置自動(dòng)檢查與修復(fù)工具,希望對(duì)大家有所幫助2025-10-10
python3中No module named _ssl的問(wèn)題解決
本文主要介紹了python3中No module named _ssl的問(wèn)題解決,這個(gè)錯(cuò)誤表示Python導(dǎo)入_ssl模塊時(shí)失敗,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
詳解pyinstaller生成exe的閃退問(wèn)題解決方案
這篇文章主要介紹了詳解pyinstaller生成exe的閃退問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
PyTorch使用tensorboard的SummaryWriter報(bào)錯(cuò)問(wèn)題解決方案
PyTorch使用tensorboard可以顯示網(wǎng)絡(luò)運(yùn)行情況,但偶爾使用SummaryWriter時(shí)遇到Segmentation fault錯(cuò)誤,這篇文章主要介紹了PyTorch使用tensorboard的SummaryWriter報(bào)錯(cuò)問(wèn)題解決方案,需要的朋友可以參考下2024-06-06
jupyter notebook 中輸出pyecharts圖實(shí)例
這篇文章主要介紹了jupyter notebook 中輸出pyecharts圖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

