代码经过自己的注释,

其实defaultdict()就是给有key的“key-value对”添加默认的value

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#使用setdefault()和defaultdict()处理缺失的键
periodict_table = {'Hydrogen':1,'Helium':2}   #创建一个字典
print(periodict_table)#如果键不在字典中,新的默认值会被添加进去
carbon = periodict_table.setdefault('Carbon',12)
print(carbon)
print(periodict_table)#如果试图把一个不同的默认值赋给已经存在的键,不会改变原来的值,仍将返回初始值
helium = periodict_table.setdefault('Helium',947)   #仍然输出以前的值2,而不会输出947
print(helium)
print(periodict_table)
print"----------------------------------------------------"#defaultdict()也有同样的用法,但是创建字典时,对每个新的键都会指定默认值,它的参数是一个函数
#在本列中,把函数int作为参数传入,会按照int()调用,返回整数0
from collections import defaultdict
periodict_table = defaultdict(int)
#现在任何缺失的值都会被赋值为0
periodict_table['hydrogen'] = 1
periodict_table['Lead']       #Lead含缺失值,赋为0
print(periodict_table)#函数defaultdict()的参数是一个函数,他返回缺失键的值
#在下面的列子中,no_idea()在需要时会被执行,返回一个值
from collections import defaultdict
def no_idea():return 'Huh?'
bestiary = defaultdict(no_idea)
bestiary['A'] = 'Abominable snowman'
bestiary['B'] = 'Basilisk'
print(bestiary['A'])
print(bestiary['B'])
print(bestiary['C'])
#同样,可以使用int(),dict(),list()分别返回0,空字典{},空列表[],如果删掉该函数的参数,新建的初始值会被设置为Nonebestiary1 = defaultdict(lambda:'HUH?')
#等价于:
def bestiary1():return 'HUN?'
print(bestiary1())print"--------------------------------------------------------------"
#使用int是一种定义计数器的方式
from collections import defaultdict
food_counter = defaultdict(int)
for food in ['apple','spam','egg','pear']:print"food=",foodprint"赋值前的效果:",food_counter[food]food_counter[food] = 5#这里就是字典的赋值方法了
for food,count in food_counter.items():print(food,count)print"--------------------------------------------------------------"#普通字典的写法
dict_count = {}
for food in ['spam','spam','egg','spam']:if not food in dict_count:dict_count[food] = 0dict_count[food] += 1
for food,count in dict_count.items():print(food,count)

python之setdefault()和defaultdict()处理缺失值的键相关推荐

  1. python setdefault,Python笔记setdefault用法

    Python字典中setdefault的用法: Python 字典 setdefault() 方法和get()方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为Non ...

  2. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略

    Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...

  3. Python函数setdefault()

    描述: Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值. 注意:setdefault() 返回的键如果不在字典中,会添加键 ...

  4. python的setdefault()方法

    描述 Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值. 语法 setdefault()方法语法:dict.setdefau ...

  5. Python中pandas库实现数据缺失值判断isnull()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中pandas库实现数据缺失值判断 isnull()函数 ...

  6. python setdefault函数_Python——用setdefault处理找不到的键

    注:对<流畅的python>第三章,用setdefault处理找不到的键,的解析 当字典 d[k] 不能找到正确的键的时候,Python 会抛出异常. 也许可以用 d.get(k, def ...

  7. Python学习教程实用技法:通过公共键对字典列表排序—itemgetter

    Python学习教程实用技法:通过公共键对字典列表排序-itemgetter 前言:我们有一个字典列表,想根据一个或多个字典中的值对列表进行排序. 利用operator模块中的itemgetter函数 ...

  8. python设置默认字典(setdefault collections.defaultdict)

    setdefault get collections defaultdict setdefault dict.setdefault(key, default=None) 如果键不存在于字典中,将会添加 ...

  9. python技巧(setdefault 与 defaultdict)

    转自:https://mp.weixin.qq.com/s/DFF8sRSW7W4nqB6mmLr2jQ 从题目引出 data = [("p", 1), ("p" ...

最新文章

  1. ls:显示指定目录的详细信息
  2. 华表 单元格公式设定与计算
  3. Android APK文件学习调研
  4. 如何检测远程主机上的某个端口是否开启
  5. arcgis xml 下载 切片_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
  6. 六、Python第六课——Python中的for循环及数字列表
  7. LeetCode 137. 只出现一次的数字 II
  8. navicat无法连接mysql
  9. mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [lis
  10. Android NuPlayer播放框架
  11. 技术支持诈骗手段翻新:借勒索软件类锁屏界面恐吓用户
  12. JAX-RS (REST Web Services) 2.0 requires Java 1.7 o
  13. 30. 与所有单词相关联的字串
  14. UE4官方文档学习笔记材质篇——分层材质
  15. 嵌入式开发——常见的存储器分类和特性介绍
  16. 你真的了解Franka吗?一文带你揭秘Franka常见问题,你想知道的都在这里!
  17. 大学计算机基础贾宗璞答案,大学计算机应用基础C教学大纲
  18. android弹出输入法内存,android 输入法导致内存泄露问题
  19. WAR3改键工具FinalKey beta 1.0制作完成
  20. 《口算大作战 概念版》功能规格说明

热门文章

  1. 一道面试题,我自己的解法
  2. 如何在Django1.6结合Python3.4版本中使用MySql
  3. 命令行下的curl使用详解
  4. struts codenips
  5. ES6新功能-模板字符串
  6. SAFE: Similarity-Aware Multi-Modal Fake News Detection-学习笔记
  7. Flexbox弹性盒模型
  8. jquery插件导出WORD
  9. 三维重建:SFM中BA的并行化
  10. 利用位运算解决 N 皇后问题