鱼C论坛

 找回密码
 立即注册
查看: 1185|回复: 0

[技术交流] cookbook 1.6

[复制链接]
发表于 2022-1-17 09:39:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

在字典中将键映射到多个值上

问题描述:
        想搞一个一键多值的字典

借助collections库
一、defaultdict
a = defaultdict(list)
b = defaultdict(set)
c = defaultdict(dict)
# 都是字典

a["a"].append(1)
b["b"].add(2)
c["c"].setdefault(3)
print(a)
print(b)
print(c)
defaultdict(<class 'list'>, {'a': [1]})
defaultdict(<class 'set'>, {'b': {2}})
defaultdict(<class 'dict'>, {'c': {3: None}})



二、普通的字典
d = {}
d.setdefault("a", []).append(4)
d.setdefault("a", []).append(5)
print(d)
{'a': [4, 5]}


三、区别
defaultdict()方法不用对第一个值进行初始化
而普通的字典需要
d = {}
pairs = ()
for key, value in pairs:
    if key not in d:
        d[key] = []
    d[key].append(value)

d = defaultdict(list)
for key, value in pairs:
    d[key].append(value)

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 21:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表