python技巧(setdefault 与 defaultdict)

python技巧(setdefault 与 defaultdict)转自 https mp weixin com s DFF8sRSW7W4n 从题目引出 data p 1 p 2 p 3 h 1 h 2 h 3 要转换成 result p 1 2 3 h 1 2 3 一般都会用的方法 d

转自:https://mp.weixin..com/s/DFF8sRSW7W4nqB6mmLr2jQ

从题目引出

data = [("p", 1), ("p", 2), ("p", 3), ("h", 1), ("h", 2), ("h", 3)] 要转换成 result = {'p': [1, 2, 3], 'h': [1, 2, 3]} 

一般都会用的方法:

data = [("p", 1), ("p", 2), ("p", 3), ("h", 1), ("h", 2), ("h", 3)] result = { 
   } for (key, value) in data: if key not in result: result[key] = [] result[key].append(value) 

setdefault
setdefault是字典对象的一个实例方法,接收两个参数,用法和字典的get方法类似,但是比 get 更强大。 它可以为给字典的key设定一个默认值(如果key不在字典中的时候)
get 方法设置的默认值不会改变原字典, 而setdefault设置的默认值会改变原字典的值。




>>> d = { 
   "x":3} >>> y = d.get("y", 4) >>> y 4 >>> d { 
   'x': 3} 

对比

>>> y = d.setdefault("y", 4) >>> y 4 >>> d { 
   'y': 4, 'x': 3} 

所以,可以更加优雅的写为:

result = { 
   } data = [("p", 1), ("p", 2), ("p", 3), ("h", 1), ("h", 2), ("h", 3)] for (key, value) in data: result.setdefault(key, []).append(value) 

defaultdict
defaultdict是属于collections 模块下的一个工厂函数,用于构建字典对象,接收一个函数(可调用)对象为作为参数。参数返回的类型是什么,key对应value就是什么类型。

>>> result = defaultdict(list) >>> result defaultdict(<type 'list'>, { 
   }) >>> result['a'] [] 
from collections import defaultdict result = defaultdict(list) data = [("p", 1), ("p", 2), ("p", 3), ("h", 1), ("h", 2), ("h", 3)] for (key, value) in data: result[key].append(value) 

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203495.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午9:42
下一篇 2026年3月19日 下午9:43


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号