Python字典一个key对应多个value几种实现方式

 更新时间:2023年10月31日 09:21:01   作者:酒酿小圆子~  
python中字典的健和值是一一对应的,如果对字典进行添加操作时如果健的名字相同,则当前健对应的值就会被覆盖,有时候我们想要一个健对应多个值的场景,这篇文章主要给大家介绍了关于Python字典一个key对应多个value几种实现方式的相关资料,需要的朋友可以参考下

python的字典是一个key对应一个value,如果想要一个key对应多个value,那么可以用以下几种方法来实现。

方法一:创建key对应列表

name_list = ['Mary', 'Jack']
age_list = [10, 12]
stu_dict = {
    'name': name_list,
    'age': age_list
}

print(stu_dict)

输出结果如下:

{'name': ['Mary', 'Jack'], 'age': [10, 12]}

方法二:使用dict.setdefault()方法

stu_dict_1 = {}
key1 = 'name'
key2 = 'age'
# 使key对应一个空列表,并使用.append()方法对空列表进行元素的添加
stu_dict_1.setdefault(key1, []).append('Mary')
stu_dict_1.setdefault(key1, []).append('Jack')
stu_dict_1.setdefault(key2, []).append(10)
stu_dict_1.setdefault(key2, []).append(12)

print(stu_dict_1)

输出结果如下:

{'name': ['Mary', 'Jack'], 'age': [10, 12]}

方法三:使用collections.defaultdict类

from collections import defaultdict
stu_dict_2 = defaultdict(list)
stu_dict_2['name'].append('Mary')
stu_dict_2['name'].append('Jack')
stu_dict_2['age'].append(10)
stu_dict_2['age'].append(12)

print(stu_dict_2)

输出结果如下:

defaultdict(<class 'list'>, {'name': ['Mary', 'Jack'], 'age': [10, 12]})

defaultdict是Python内建dict类的一个子类,其使用一个factory_function作为输入,这个factory_function可以是list、set、str等等。

dict = defaultdict(factory_function)

在实际使用过程中,我们除了需要字典一个key对应多个value,可能还有对多个value值去重的需求,这时,只需要创建一个 defaultdict(set) 的字典即可,样例如下:

stu_dict_3 = defaultdict(set)
stu_dict_3['name'].add('Mary')
stu_dict_3['name'].add('Jack')
stu_dict_3['age'].add(10)
stu_dict_3['age'].add(10)

print(stu_dict_3)

输出结果如下:

defaultdict(<class 'set'>, {'name': {'Mary', 'Jack'}, 'age': {10}})

总结

到此这篇关于Python字典一个key对应多个value几种实现方式的文章就介绍到这了,更多相关Python字典key对应多value内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈Python正则表达式中的groups()

    浅谈Python正则表达式中的groups()

    本文介绍了Python中正则表达式re模块的groups()方法,通过解析智能体动作指令的实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • 在Python的Django框架中包装视图函数

    在Python的Django框架中包装视图函数

    这篇文章主要介绍了在Python的Django框架中包装视图函数的方法,即requires_login的相关方法,需要的朋友可以参考下
    2015-07-07
  • Python遇到“No module named cv2“错误的详细解决方法

    Python遇到“No module named cv2“错误的详细解决方法

    这篇文章主要介绍了Python遇到“No module named cv2“错误的详细解决方法,这个问题通常是因为未正确安装OpenCV,解决方法包括安装opencv-python包、验证安装、处理操作系统依赖问题,需要的朋友可以参考下
    2025-04-04
  • Python+Qt相片更换背景颜色窗体程序的步骤详解

    Python+Qt相片更换背景颜色窗体程序的步骤详解

    QT+Python是非常经典的窗体编程组合,功能完善,可视化界面美观易维护,这篇博客针对相片更换背景颜色方面编写代码,代码整洁,规则,易读,对学习与使用Python有较好的帮助,需要的朋友可以参考下
    2022-12-12
  • Jupyter notebook中如何添加Pytorch运行环境

    Jupyter notebook中如何添加Pytorch运行环境

    这篇文章主要介绍了Jupyter notebook中如何添加Pytorch运行环境,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python面向对象之模块详解

    Python面向对象之模块详解

    这篇文章主要为大家介绍了Python面向对象之模块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 编写Python脚本抓取网络小说来制作自己的阅读器

    编写Python脚本抓取网络小说来制作自己的阅读器

    这篇文章主要介绍了编写Python脚本抓取网络小说来制作自己的阅读器的方法,包括对小说的章节排列等方面的优化,对于Python学习者来说非常具有实践意义!需要的朋友可以参考下
    2015-08-08
  • Python线程条件变量Condition原理解析

    Python线程条件变量Condition原理解析

    这篇文章主要介绍了Python线程条件变量Condition原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python实现滑动平均(Moving Average)的例子

    Python实现滑动平均(Moving Average)的例子

    今天小编就为大家分享一篇Python实现滑动平均(Moving Average)的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python深度学习pyTorch权重衰减与L2范数正则化解析

    Python深度学习pyTorch权重衰减与L2范数正则化解析

    这篇文章主要介绍了Python深度学习中的pyTorch权重衰减与L2范数正则化的详细解析,文中附含详细示例代码,有需要的朋友可以借鉴参考下
    2021-09-09

最新评论