鱼C论坛

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

[技术交流] cookbook 1.6

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

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

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

x

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

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

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

  5. a["a"].append(1)
  6. b["b"].add(2)
  7. c["c"].setdefault(3)
  8. print(a)
  9. print(b)
  10. print(c)
复制代码
defaultdict(<class 'list'>, {'a': [1]})
defaultdict(<class 'set'>, {'b': {2}})
defaultdict(<class 'dict'>, {'c': {3: None}})



二、普通的字典
  1. d = {}
  2. d.setdefault("a", []).append(4)
  3. d.setdefault("a", []).append(5)
  4. print(d)
复制代码
{'a': [4, 5]}


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

  7. d = defaultdict(list)
  8. for key, value in pairs:
  9.     d[key].append(value)
复制代码

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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