Python dict和defaultdict使用实例解析
作者:我太难了008 发布时间:2022-12-24 20:44:19
标签:Python,dict,defaultdict
先看一个需求
from collections import defaultdict
"""
需求: 统计user_list中字母出现的次数
"""
user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
# 第一种方式
for item in user_list:
if item not in user_dict:
user_dict[item] = 1
else:
user_dict[item] += 1
print(user_dict) # {'A': 2, 'B': 1, 'C': 3}
# 第二种方式
user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
user_dict.setdefault(item, 0) # 如果user_dict无item这个key,添加{item:0} , 如果有,不管. 而且这个方法性能比第一种方式好
user_dict[item] += 1 # item的value值累加1
print(user_dict) # {'A': 2, 'B': 1, 'C': 3}
# 第三种方式.使用defaultdict
default_dict = defaultdict(int)
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
default_dict[item] += 1 # 使用这种方式,代码更简单,性能也更好
print(default_dict) # defaultdict(<class 'int'>, {'A': 2, 'B': 1, 'C': 3})
defaultdict的使用
由上面的示例可知,defaultdict会根据创建实例参数的类型生成一个对应类型的默认值,
这对于dict类型的数据结构而言,可以很好避免KeyError类型的错误 .
此外,我们还可以自定义defaultdict调用对象的数据结构,以满足我们实际需要
def person():
'''自定义一个可调用对象'''
return {
'name': '',
'age': 0
}
default_dict = defaultdict(person)
default_dict['p']
pass
是不是很赞....
来源:https://www.cnblogs.com/z-qinfeng/p/12038505.html
0
投稿
猜你喜欢
- 下午在写程序的时候,碰到个变量重定义的问题,具体是在一个函数中的两个地方定义了相同的变量,两个变量分别放在IF语句的两部分中,本来以为这两次
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- 1.元字符: . 它匹配除了换行字符外的任何字符,在 alternate 模式(re.DOTALL)下它甚至可以匹配换行 ^ 匹配行首。除非
- 所需库的安装很多人问Pytorch要怎么可视化,于是决定搞一篇。tensorboardX==2.0tensorflow==1.13.2由于t
- 英文版:File -> settings -> Editor -> File Encodings首先打开设置:文件 -&g
- 说到这个话题,我们有个产品叫群组,为什么人们需要群组?简单说,群组就是个圈子,是有共同爱好和话题的人群聚在一起讨论、分享的地方。这个产品的诞
- Python 的代码风格由 PEP 8 描述。这个文档描述了 Python 编程风格的方方面面。在遵守这个文档的条件下,不同程序员编写的 P
- Win7或Windows server 2008中IIS7支持ASP+Access解决方法:1. 让IIS7支持ASPWin7或Window
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 最常用的遍历方式为for语句(也有递归、while方式)。当我们遍历一个数组的时候,我们一般会这么做:var arr = [1,2,3,4,
- 代码如下:<%@LANGUAGE="VBSCRIPT"%> <% option&n
- 本文实例为大家分享了Python函数式编程实现登录注册功能的具体代码,供大家参考,具体内容如下代码:def login(username,
- 不知不觉已经在家两个月了,眼看马上春节就要来临了。满怀期待的写了一个新年倒计时的小工具!设置新年时间后都能够使用,打开软件后可以自动计算到新
- 学习一些你已经知道的知识也没有什么坏处,是吧?我知道这可能并不一定非常有意义,但是很多时候我们往往知其然而不知其所以然,这会使得事情出现惊人
- 在 PHP 中表示空的map或空数组都是以空数组形式,在转化为json数据时,会将空数组统一 json 序列化成 [],这样就存在
- 目前网上能获取的免费的python打包工具主要有三种:py2exe、PyInstaller和cx_Freeze。下面简单介绍windows7
- 一个简单的PHP循环一维数组的实例,先是把字符串按照一定的规则进行转换成为数组,然后再进行遍历输出,实际是一个很简单的方法,因为最近做的一个
- 在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:hexstring 如:'1C532145697A8B6F&
- 长话短说,看这个 form 元素:<form method="post" action=&qu
- 不久前因业务需要,我在自己的笔记本中安装了搜霸。当时一个做平面的朋友过来和我做一些设计交流,我在笔记本前准备输入一个网址,他靠近我的电脑,大