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

yipeiwu_com6年前Python基础

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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python三级菜单的实例

要求: 打印省、市、县三级菜单 可返回上一级 可随时退出程序 版本1 # _author : Ahern Li # @_date : 2017/9/12 menu = { '浙...

利用django如何解析用户上传的excel文件

前言 我们在工作中的时候,会有这种需求:用户上传一个格式固定excel表格到网站上,然后程序负债解析内容并进行处理。我最近在工作中就遇到了,所以想着将解决的过程总结分享出来,方便大家参考...

tensorflow中tf.slice和tf.gather切片函数的使用

tf.slice(input_, begin, size, name=None):按照指定的下标范围抽取连续区域的子集 tf.gather(params, indices, valida...

PyCharm代码提示忽略大小写设置方法

PyCharm代码提示忽略大小写设置方法

如图: 具体见上图! 以上这篇PyCharm代码提示忽略大小写设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。...

详解Python中的变量及其命名和打印

在程序中,变量就是一个名称,让我们更加方便记忆。 cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90...