• 售前

  • 售后

热门帖子
入门百科

详解Python 中的 defaultdict 数据范例

[复制链接]
木头哈喇子崭 显示全部楼层 发表于 2021-10-25 19:25:38 |阅读模式 打印 上一主题 下一主题
这篇文章给各人介绍Python 中的 defaultdict 数据范例,详细内容如下所示:
官方网址
起首,
  1. defaultdict
复制代码
  1. dict
复制代码
的一个子类。通常 Python 中字典(dict)这种数据范例是通过键值对来存取的,当索引一个不存在的键时,就会引发
  1. keyerror
复制代码
异常。那么,
  1. defaultdict
复制代码
就可以办理这个问题,它可以实现为不存的键值返回一个默认值。
  1. defaultdict
复制代码
  1. collections
复制代码
包下的一个模块,
  1. defaultdict
复制代码
在初始化时可以提供一个 default_factory 的参数,default_factory 接收一个工厂函数作为参数, 可以是 int、str、list 等内置函数,也可以是自定义函数。
用法实例如下:
示例一: 统计字符串中字母出现的个数。
  1. from collections import defaultdict
  2. s = 'mississippi'
  3. d = defaultdict(int)
  4. for k in s:
  5. d[k] += 1
  6. print(d)
  7. # 输出
  8. # defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})
复制代码
如果不用 defaultdict 的话,写法如下:
  1. s = 'mississippi'
  2. d = {}
  3. for k in s:
  4. if k not in d:
  5.   d[k] = 1
  6. else:
  7.   d[k] = d[k] + 1
  8. print(d)
  9. # 输出
  10. # {'m': 1, 'i': 4, 's': 4, 'p': 2}
复制代码
  1. s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
  2. d = defaultdict(list)
  3. for k, v in s:
  4. d[k].append(v)
  5. print(d)
  6. # 输出
  7. # defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})
复制代码
示例二: 利用 lambda 函数。
  1. q = defaultdict(lambda: [0, 0, 0])
  2. print(q['a'])
  3. # 输出
  4. # [0, 0, 0]
复制代码
到此这篇关于Python 中的 defaultdict 数据范例的文章就介绍到这了,更多相干Python defaultdict 数据范例内容请搜索脚本之家以前的文章或继承欣赏下面的相干文章渴望各人以后多多支持脚本之家!

本帖子中包含更多资源

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

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作