python 字典 setdefault()和get()方法比较详解
作者:caizhanjin 发布时间:2022-12-11 01:28:41
标签:python,字典,setdefault,get,方法,比较
dict.setdefault(key, default=None)
--> 有key获取值,否则设置 key:default,并返回default,default默认值为None
dict.get(key, default=None)
--> 有key获取值,否则返回default。default默认值为None。
例子:循环迭代message字符串中每个字符,计算每个字符出现的次数
import pprint
message = "It is a good day, is not it?I mean the weather is good today."
count1 = {}
for char in message:
count1.setdefault(char, 0)
count1[char] += 1
count2 = {}
for char in message:
count2[char] = count2.get(char, 0) + 1
pprint.pprint(count1)
pprint.pprint(count2)
扩展:
defaultdict:属于collections 模块下的一个工厂函数,用于构建字典对象,接收一个函数(可调用)对象为作为参数。参数返回的类型是什么,key对应value就是什么类型。
例子:
一般写法:
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:
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:
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://www.cnblogs.com/caizhanjin/p/11311857.html
0
投稿
猜你喜欢
- 生成6位随机验证码的3种实现方式如下:1. 简单粗暴型:所有数字和字母都放入字符串;2. 利用ascii编码的规律,遍历获取字符串和数字的字
- 我用的是Anaconda3 ,用spyder编写pytorch的代码,在Anaconda3中新建了一个pytorch的虚拟环境(虚拟环境的名
- 场景描述:场景描述:一个接口(IPerson)有很多个的字段,可能有几百。而且这些字段都是必须的。我们需要使用这个接口,但是我又不可能使用它
- 很多人都已经把 Javascript的用的炉火纯青了,但见到defer未必就知道他是做什么用的;很多人也都遇到过这样的问题,需要直接执行别且
- 1.查看当前电脑python版本python -V // 显示2.7.x2.用brew升级pythonbrew update p
- 一、安 * rew终端上运行 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubus
- asp之家注:有时候我们想让程序运行变慢下来,asp中该怎么做呢?原理很简单就是在运行程序前运行一段无关紧要的程序就可以了,要实现加长程序的
- 作者: hezhiwu5@163.com <script language="javascr
- 我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式。也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件
- 笔主在做一个项目要生成一组随机有序的整型数字,并按行输出到文本文件使用,恰好开始学习Python3,遂决定直接使用Python3解决思路:与
- 假设我们有一个非常简单的Post模型,它将是一个图像及其描述,from django.db import modelsclass Post(
- 一个用HTML和CSS实现的注册页面模板,废话不多说了,上代码!更新:使用JavaScript实现用户名和密码表单校验功能。代码如下:<
- MSXML是微软非托管代码栈中最为核心的XML服务集合,不但适合基于COM的开发应用,更是微软AJAX解决方案和客户端XSLT解决方案的核心
- 简介pyenv 是一个开源的 Python 版本管理工具,可以轻松地给系统安装任意 Python 版本,想玩哪个版本,瞬间就可以切换。有了
- 在机房收费系统中,有几处这样的情况:起始日期和终止日期,相信聪明的你肯定可以想象出为什么要有两个日期控件!是的,就是从一张表中查找出在这两个
- MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。标准的SQL模式匹
- 数据采集我们上一篇介绍了,如何采集王者最低战力,本文就来给大家介绍如何采集王者皮肤,买不起皮肤,当个桌面壁纸挺好的。下面,我和大家介绍如何获
- 用matplotlib.pyplot画的图,显示和保存的图片周围都会有白边,可以去掉。为了显示的更清楚,给图片加了红色的框代码“` impo
- 一、安装SSL证书的环境Apache安装目录:E:phpStudyPHPTutorialApache以上为windows下测试SSL证书安装
- 前言:👉对于新手来说,库的安装是遇到的第一个挑战,我也入了很多坑,所以想出一期安装库的步骤,由于博主水平限制,博客难免会有错误和不准之处,我