Python中的字典一键多值的四种写法小结

 更新时间:2025年09月01日 09:48:57   作者:小庄-Python办公  
在 Python 中,字典的键是唯一的,但可以通过将值与列表、集合等数据结构结合,实现一个键对应多个值,以下是几种常见写法,希望对大家有所帮助

1. 背景介绍

在 Python 中,字典的键是唯一的,但可以通过将值与列表、集合等数据结构结合,实现一个键对应多个值。以下是几种常见写法:

2. 方法1—使用列表存储多个值

my_dict = {}

# 添加值
my_dict.setdefault('key1', []).append('value1')
my_dict.setdefault('key1', []).append('value2')

# 结果
print(my_dict)  # 输出: {'key1': ['value1', 'value2']}

3. 方法2—使用集合存储多个值(确保唯一性)

my_dict = {}

# 添加值
my_dict.setdefault('key1', set()).add('value1')
my_dict.setdefault('key1', set()).add('value2')
my_dict.setdefault('key1', set()).add('value1')  # 重复值不会被添加

# 结果
print(my_dict)  # 输出: {'key1': {'value1', 'value2'}}

4. 方法3—使用 defaultdict 简化操作

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')  # 重复值不会被添加

print(my_dict)  # 输出: defaultdict(<class 'set'>, {'key1': {'value1', 'value2'}})

5. 方法4—手动检查键是否存在

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.方法补充

python 字典一键赋多值

方案一:

(1) list作为dict的值,值允许重复,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的值,值不允许重复,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),值可以重复

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),值不允许重复

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}}) 

到此这篇关于Python中的字典一键多值的四种写法小结的文章就介绍到这了,更多相关Python字典一键多值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中对元组和列表按条件进行排序的方法示例

    Python中对元组和列表按条件进行排序的方法示例

    这篇文章主要介绍了Python中对元组和列表按条件进行排序的方法示例,需要的朋友可以参考下
    2015-11-11
  • APIStar:一个专为Python3设计的API框架

    APIStar:一个专为Python3设计的API框架

    今天小编就为大家分享一篇关于一个专为Python3设计的API框架:APIStar,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • libreoffice python 操作word及excel文档的方法

    libreoffice python 操作word及excel文档的方法

    这篇文章主要介绍了libreoffice python 操作word及excel文档的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Matplotlib实现subplot和subplots简单对比

    Matplotlib实现subplot和subplots简单对比

    在画布创建子图会有很多方法,本文主要介绍了Matplotlib实现subplot和subplots简单对比,简单的介绍了这两种方法区别,感兴趣的可以了解一下
    2021-05-05
  • Python+OpenCV让电脑帮你玩微信跳一跳

    Python+OpenCV让电脑帮你玩微信跳一跳

    这篇文章主要为大家详细介绍了Python+OpenCV让电脑帮你玩微信跳一跳,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python编写一个代码规范自动检查工具

    Python编写一个代码规范自动检查工具

    在Python开发中,代码规范对于项目的可维护性和团队协作效率至关重要,本文介绍一个基于AST的Python import语句位置自动检查与修复工具,希望对大家有所帮助
    2025-10-10
  • python3中No module named _ssl的问题解决

    python3中No module named _ssl的问题解决

    本文主要介绍了python3中No module named _ssl的问题解决,这个错误表示Python导入_ssl模块时失败,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • 详解pyinstaller生成exe的闪退问题解决方案

    详解pyinstaller生成exe的闪退问题解决方案

    这篇文章主要介绍了详解pyinstaller生成exe的闪退问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • PyTorch使用tensorboard的SummaryWriter报错问题解决方案

    PyTorch使用tensorboard的SummaryWriter报错问题解决方案

    PyTorch使用tensorboard可以显示网络运行情况,但偶尔使用SummaryWriter时遇到Segmentation fault错误,这篇文章主要介绍了PyTorch使用tensorboard的SummaryWriter报错问题解决方案,需要的朋友可以参考下
    2024-06-06
  • jupyter notebook 中输出pyecharts图实例

    jupyter notebook 中输出pyecharts图实例

    这篇文章主要介绍了jupyter notebook 中输出pyecharts图实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论