python 字典 setdefault()和get()方法比较详解


Posted in Python onAugust 07, 2019

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就是什么类型。

例子:

python 字典 setdefault()和get()方法比较详解

一般写法:

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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用aardio给python编写图形界面
Aug 21 Python
python 2.7.13 安装配置方法图文教程
Sep 18 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
python变量命名的7条建议
Jul 04 Python
如何利用python给图片添加半透明水印
Sep 06 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python集合删除多种方法详解
Feb 10 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python实现粒子群算法
Oct 15 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 #Python
如何用Python来搭建一个简单的推荐系统
Aug 07 #Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 #Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 #Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 #Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 #Python
Python学习笔记之文件的读写操作实例分析
Aug 07 #Python
You might like
PHP常用代码
2006/11/23 PHP
百度地图API使用方法详解
2015/08/25 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
php json转换相关知识(小结)
2018/12/21 PHP
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
面试常见的js算法题
2017/03/23 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Python类的多重继承问题深入分析
2014/11/09 Python
python批量生成本地ip地址的方法
2015/03/23 Python
Python中的各种装饰器详解
2015/04/11 Python
python 简单的多线程链接实现代码
2016/08/28 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Python工厂函数用法实例分析
2018/05/14 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
如何用python写个模板引擎
2021/01/14 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
在C#中如何实现多态
2014/07/02 面试题
企业指导教师评语
2014/04/28 职场文书
迎七一演讲稿
2014/09/12 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
优秀大学生自荐信
2015/03/26 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL