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字典一键多值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在numpy矩阵中令小于0的元素改为0的实例

    在numpy矩阵中令小于0的元素改为0的实例

    今天小编就为大家分享一篇在numpy矩阵中令小于0的元素改为0的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python实现以主程序的形式执行模块

    Python实现以主程序的形式执行模块

    这篇文章主要介绍了Python实现以主程序的形式执行模块,首先创建一个以christmastree的命名的模块并定义一个全局变量创建一个名称为fun_christmastree()的函数展开详情,感兴趣的朋友可以参考一下
    2022-06-06
  • python爬虫工具例举说明

    python爬虫工具例举说明

    在本篇文章里小编给大家整理的是一篇关于python爬虫工具例举说明内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • pandas 两列时间相减换算为秒的方法

    pandas 两列时间相减换算为秒的方法

    下面小编就为大家分享一篇pandas 两列时间相减换算为秒的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python3 queue队列模块详细介绍

    Python3 queue队列模块详细介绍

    queue是python中的标准库,俗称队列。这篇文章给大家介绍了Python3 queue队列模块,包括模块中的常用方法及构造函数,需要的朋友参考下吧
    2018-01-01
  • python如何支持并发方法详解

    python如何支持并发方法详解

    这篇文章主要介绍了python如何支持并发,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • torch 中各种图像格式转换的实现方法

    torch 中各种图像格式转换的实现方法

    这篇文章主要介绍了torch 中各种图像格式转换的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • python3中celery异步框架简单使用+守护进程方式启动

    python3中celery异步框架简单使用+守护进程方式启动

    这篇文章主要介绍了python3中celery异步框架简单使用+守护进程方式启动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python 随机按键模拟2小时

    Python 随机按键模拟2小时

    这篇文章主要介绍了Python 随机按键模拟的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • python的函数形参和返回值你了解吗

    python的函数形参和返回值你了解吗

    这篇文章主要为大家详细介绍了python的函数形参和返回值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论