collections模块之defaultdict()与namedtuple()方法简单介绍
一、defaultdict()
作用:根据数据创建字典时,需要为一些数据生成字典,而且对值得类型进行限定的时候,考虑defaultdict
from collections import defaultdict
list_01 = [('Apple', 10), ('Pen', 20), ('Apple', 30), ('Pen', 40), ('Banana', 33)]
d01 = defaultdict(list)  # 生成一个defaultdict对象
for k, v in list_01:
    d01[k].append(v)
print(d01)  # defaultdict(<class 'list'>, {'Apple': [10, 30], 'Pen': [20, 40], 'Banana': [33]})
print(dict(d01.items()))  # {'Apple': [10, 30], 'Pen': [20, 40], 'Banana': [33]}
print(list(d01.items()))  # [('Apple', [10, 30]), ('Pen', [20, 40]), ('Banana', [33])]
补充理解:
list_01 = [('Apple', 10), ('Pen', 20), ('Apple', 30), ('Pen', 40), ('Banana', 33)]
dict01 = {}
for k, v in list_01:
    dict01.setdefault(k, []).append(v)
print(dict01)
print(list(dict01.items()))
二、namedtuple()
namedtuple是继承自tuple的子类。namedtuple和tuple比,有更多更酷的特性。namedtuple创建一个和tuple类似的对象,而且对象拥有可以访问的属性。这对象更像带有数据属性的类,不过数据属性是只读的。

collections模块之defaultdict()与namedtuple()方法简单介绍的更多相关文章
- InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
		
InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是 ...
 - python collections模块 之 defaultdict
		
defaultdict 是 dict 的子类,因此 defaultdict 也可被当成 dict 来使用,dict 支持的功能,defaultdict 基本都支持.但它与 dict 最大的区别在于,如 ...
 - eclipse IDE使用git方法简单介绍
		
eclipse下使用git插件上传代码至github 1.eclipse下安装git eclipse git 插件的安装. 点击 Help->Install New Software-> ...
 - Android Mediaplayer各种属性和方法简单介绍
		
主要涉及类:MediaPlayer (1) 当一个MediaPlayer对象被创建或者调用reset()方法之后,它处于空闲状态,调用release()方法后处于结束状态 1,一个MediaPlaye ...
 - java类中的static成员变量和static方法简单介绍,持续补充
		
一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用. 2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方 ...
 - python 子进程 subpocess 的使用方法简单介绍
		
python的子进程嘛,就是利用python打开一个子进程(当然像是一句废话),但是可能和我们理解的不太一样. 一:如何理解? 我们可能的理解:多开一个进程运行某个python函数(如果只想实现这个功 ...
 - Python  Appium  元素定位方法简单介绍
		
Python Appium 元素定位 常用的八种定位方法(与selenium通用) # id定位 driver.find_element_by_id() # name定位 driver.find_ ...
 - awk基本使用方法简单介绍
		
之前说过sed, 今天来说awk, 它也是一个文本处理器. 是linux下的一个命令, 比sed更强大. 搞linux开发, 尤其是后台开发, 这个命令差点儿必需要用到. awk这三个字母分别代表其三 ...
 - java 多线程  start方法 run方法 简单介绍。
		
一 start开启一个多线程, run 只是一个内部的方法. package com.aaa.threaddemo; /* * start方法的作用? * 在 Java中启动多线程调用的是start方 ...
 
随机推荐
- JS函数基础
			
一.函数 1.函数是什么 具有特定功能的n条语句的封装体. 只有函数是可执行的,其它类型的数据是不可执行的. 函数也是对象. 2.为什么要用函数 提高代码复用 便于阅读和交流 3.如何定义函数 函数声 ...
 - MVVM架构方式
			
一.概念 ①常见的架构方式或者开发思想还有MVC.MVP和MVVM,参考文章:MVC,MVP 和 MVVM 的图示 ②MVC:视图(View),指用户界面:控制器(Controller),指业务逻辑: ...
 - 单片机模块化程序:  单片机加入JSON是个不错的选择
			
这节需要知道的知识点 https://www.cnblogs.com/yangfengwu/p/11685325.html 下载JSON文件: 链接: https://sourcefo ...
 - pfx格式和cer格式的区别
			
来一篇大神的帖子就都懂了. 版权声明:本文为CSDN博主「天府云创」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn. ...
 - 【cf比赛记录】Codeforces Round #600 (Div. 2)
			
Codeforces Round #600 (Div. 2) ---- 比赛传送门 昨晚成绩还好,AC A,B题,还能上分(到底有多菜) 补了C.D题,因为昨晚对C.D题已经有想法了,所以补起题来也快 ...
 - linux 如何改变文件属性与权限1
			
我们知道档案权限对于一个系统的安全重要性,也知道档案的权限对于使用者与群组的相关性, 那如何修改一个档案的属性与权限呢? 我们这里介绍几个常用于群组.拥有者.各种身份的权限的指令.如下所示: chgr ...
 - 冰多多团队-第四次Scrum会议
			
冰多多团队-第四次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 zpj 撰写团队任务拆解博客 完成部分Action的实现 牛雅哲 完成了词典单词,词典映射的代码实现,设计了初步的词典异常 ...
 - portaudio使用笔记《转》
			
原文链接:https://blog.csdn.net/gg_simida/article/details/77185755 介绍 PortAudio是一个免费.跨平台.开源的音频I/O库.看到I/O可 ...
 - 将文件File转换成byte数组
			
代码如下: /** * 将文件转换成byte数组 * @param filePath * @return */ public static byte[] File2byte(File tradeFil ...
 - C++11版本不能使用一个单行命名空间方式特化一个函数的bug
			
warning: specialization of ‘template<class _Iterator> struct std::iterator_traits’ in differen ...