Python中的字典一鍵多值的四種寫法小結(jié)
1. 背景介紹
在 Python 中,字典的鍵是唯一的,但可以通過將值與列表、集合等數(shù)據(jù)結(jié)構(gòu)結(jié)合,實(shí)現(xiàn)一個(gè)鍵對(duì)應(yīng)多個(gè)值。以下是幾種常見寫法:
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中的字典一鍵多值的四種寫法小結(jié)的文章就介紹到這了,更多相關(guān)Python字典一鍵多值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊
這篇文章主要介紹了Python實(shí)現(xiàn)以主程序的形式執(zhí)行模塊,首先創(chuàng)建一個(gè)以christmastree的命名的模塊并定義一個(gè)全局變量創(chuàng)建一個(gè)名稱為fun_christmastree()的函數(shù)展開詳情,感興趣的朋友可以參考一下2022-06-06
Python3 queue隊(duì)列模塊詳細(xì)介紹
queue是python中的標(biāo)準(zhǔn)庫(kù),俗稱隊(duì)列。這篇文章給大家介紹了Python3 queue隊(duì)列模塊,包括模塊中的常用方法及構(gòu)造函數(shù),需要的朋友參考下吧2018-01-01
torch 中各種圖像格式轉(zhuǎn)換的實(shí)現(xiàn)方法
這篇文章主要介紹了torch 中各種圖像格式轉(zhuǎn)換的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng)
這篇文章主要介紹了python3中celery異步框架簡(jiǎn)單使用+守護(hù)進(jìn)程方式啟動(dòng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

