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设计】。

相关文章

10分钟教你用Python实现微信自动回复功能

10分钟教你用Python实现微信自动回复功能

 01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息。但微信又不能像QQ一样设置自动回复。无妨,今天,我们就来用Python实现微信的自动回复功能...

简单的编程0基础下Python入门指引

简单的编程0基础下Python入门指引

 你曾经想知道计算机是如何工作的吗?尽管我们不能在一篇文章里面教会你所有的东西,但是可以通过学习如何写出你自己的程序来获得一个良好的开端。在这篇Python教程中,你将会学到计...

Python 词典(Dict) 加载与保存示例

Dict的加载: import json def load_dict(filename): '''load dict from json file''' with open(f...

浅析Python数字类型和字符串类型的内置方法

一、数字类型内置方法 1.1 整型的内置方法 作用 描述年龄、号码、id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10...

numpy排序与集合运算用法示例

numpy排序与集合运算用法示例

这里有numpy数组的相关介绍/post/130657.htm 排序 numpy与python列表内置的方法类似,也可通过sort方法进行排序。 用法如下: In [1]: imp...