Python之字典一个key对应多个value

这篇具有很好参考价值的文章主要介绍了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)

输出结果如下:文章来源地址https://www.toymoban.com/news/detail-717786.html

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

到了这里,关于Python之字典一个key对应多个value的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 判断字典中 key 是否存在(三种方式)

    方式一: has_key() ,在 python2.2 之前已经被放弃,所以推荐使用其他方式。 方式二: keys() ,需要 in 配合使用,也可以使用 not in 方式三: in 或 not in , 【推荐使用】

    2024年02月13日
    浏览(40)
  • 【Python】对key或values是datetime类型或时间字符串的字典dict排序

    当字典的key是时间字符串类型,如下 time_dict = {‘2021-05-18’: 119, ‘2021-06-05’: 119, ‘2020-12-10’: 116, ‘2021-04-19’: 110, ‘2020-12-04’: 108, ‘2021-04-13’: 106, ‘2020-12-08’: 106, ‘2020-09-12’: 103, ‘2021-05-14’: 101, ‘2021-05-08’: 100, ‘2021-01-09’: 99, ‘2020-12-09’: 99, ‘2021-06-25’: 99, ‘

    2023年04月08日
    浏览(38)
  • Python —— 将两个列表组成一个字典

    场景: 在不需要遍历的情况下将两个列表组成一个字典 分别有列表A 和 列表B,将列表A作为字典的键,列表B作为字典的值 - zip函数的作用是将可迭代对象中对应的元素给打包成元组并以列表的形式返回 字典创建方法 dict() 能够将这种类型的对象直接转为键值对格式,使用该

    2024年02月11日
    浏览(43)
  • Flink中KeyedStateStore实现--怎么做到一个Key对应一个State

    在Flink中有两种基本的状态: Keyed State和Operator State , Operator State 很好理解,一个特定的Operator算子共享同一个state,这是实现层面很好做到的。 但是 Keyed State 是怎么实现的?一般来说,正常的人第一眼就会想到:一个task绑定一个 Keyd State ,从网上随便查找资料就能发现正确的

    2024年02月10日
    浏览(33)
  • 记录一个sql:查询商品码对应多个商品的商品码

    一个项目中,商品表和商品码表是一对多的关系,但由于程序没有控制好,导致有些商品码对应有多个商品,为了修正数据,我们得把商品码对应多个商品的商品码找出来. goods_detail表结构 查询商品码对应多个商品的商品码的sql 查询结果 验证sql 随机挑一个商品码查询,果然

    2024年01月21日
    浏览(39)
  • 服务器上一个域名对应多个前端项目的nginx转发配置

    场景: 当有两个前端项目A,B的时候,项目A(对应端口8000)和项目B(对应端口8001)分别部署在服务器的不同位置,通过服务器ip+端口都能正常访问单独的项目A和项目B;现在要求两个项目共用一个域名~~也就是说访问http://10.111.182.xxx:8000的时候默认访问项目A的资源,访问htt

    2024年02月05日
    浏览(53)
  • Python实战:多个视频合并成一个完整视频

    Python实战:多个视频合并成一个完整视频 视频剪辑是现代数字媒体领域中不可或缺的工具之一。Python作为一门高级编程语言,自然也有许多优秀的音视频处理库。本文将介绍如何使用Python的moviepy库将多个视频合并成一个完整的视频。 首先,我们需要安装moviepy库。可以使用

    2024年02月16日
    浏览(39)
  • chatgpt赋能python:Python中*para:使用一个参数解决多个参数

    Python是广泛使用的编程语言之一,它非常灵活,可扩展性强,可以通过许多不同的方式实现编程目标。在Python中,有一种非常有用的特性,那就是使用 para来代替多个参数。接下来,我们将介绍Python中 para的用法以及为什么它是一个方便且强大的工具。 在Python中, para是一个特

    2024年02月07日
    浏览(37)
  • python怎么将多个矩阵合并为一个多维矩阵

    在 Python 中,可以使用 NumPy 库来合并多个矩阵为一个多维矩阵。 NumPy 提供了一个名为 concatenate 的函数,可以将多个矩阵沿指定的轴合并为一个矩阵。例如,如果要将两个二维矩阵沿着垂直轴合并为一个三维矩阵,可以使用如下代码: 输出结果为: 另外,还可以使用 stack 函

    2024年02月11日
    浏览(40)
  • Python向一个CSV中写入多个Sheet

    在处理数据时,我们经常需要将数据保存到CSV文件中,以便于后续的分析和处理。而有时候,我们需要将不同的数据保存到不同的Sheet中,这个时候就需要使用到Python库中的一些功能来实现。 本文将介绍如何使用Python将多个Sheet写入到一个CSV文件中。我们将使用Pandas和openpyx

    2024年01月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包