博客
关于我
Python 字典键映射多个值,字典值为列表,defaultdict
阅读量:256 次
发布时间:2019-03-01

本文共 689 字,大约阅读时间需要 2 分钟。

背景

在处理大量数据时,涉及到元组或列表的记录归纳统计时,需要将所有列表转换为字典以便统计。以下是一个示例:

l1 = ['张三', '语文', 50]l2 = ['李四', '语文', 60]l3 = ['张三', '数学', 70]l4 = ['李四', '数学', 60]

期望结果为:

{    '张三': [50, 70],    '李四': [60, 60]}

代码

from collections import defaultdictl1 = ['张三', '语文', 50]l2 = ['李四', '语文', 60]l3 = ['张三', '数学', 70]l4 = ['李四', '数学', 60]result = defaultdict(list)for record in (l1, l2, l3, l4):    name = record[0]    score = record[2]    result[name].append(score)print(result)

分析

defaultdict的作用是,当字典中的键不存在时,返回默认值而不是KeyErrordefaultdict接受一个工厂函数作为参数,用于在键不存在时创建默认值。例如:

  • defaultdict(list):当键不存在时,返回一个空列表。
  • defaultdict(set):当键不存在时,返回一个空集合。
  • defaultdict(str):当键不存在时,返回一个空字符串。

优点

  • 不再需要检查字典键是否存在。
  • 代码简洁,易于维护。
  • 适合批量处理数据。

参考文章

你可能感兴趣的文章
pageHelper分页技术
查看>>
PageHelper分页查询遇到的小问题
查看>>
PageHelper实现分页详细版、整合SSM应用
查看>>
SpringBoot中配置为开发模式,代码修改后不用重新运行
查看>>
springboot中pom.xml、application.yml、application.properties
查看>>
PageHelper:上手教程(最详细)
查看>>
PageOffice如何实现从零开始动态生成图文并茂的Word文档
查看>>
PageRank算法
查看>>
Paint类(画笔)
查看>>
paip.android 手机输入法制造大法
查看>>
paip.spring3 mvc servlet的配置以及使用最佳实践
查看>>
Palindrome Number leetcode java
查看>>
Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)
查看>>
Palo Alto Networks Expedition 远程命令执行漏洞(CVE-2024-9463)
查看>>
Palo Alto Networks PAN-OS身份认证绕过导致RCE漏洞复现(CVE-2024-0012)
查看>>
Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现
查看>>
Springboot中@SuppressWarnings注解详细解析
查看>>
Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现
查看>>
Panalog 日志审计系统 sprog_upstatus.php SQL 注入漏洞复现(XVE-2024-5232)
查看>>
Panalog 日志审计系统 前台RCE漏洞复现
查看>>