namedtuple的简单使用
"""
factory function for creating tuple subclasses with named fields
namedtuple 是tuple的子类,
在tuple的基础上增添了许多功能, 最主要是可以把它看成一个类来使用
"""
from collections import namedtuple # 使用namedtuple的第一种方式
User = namedtuple("User", ['name', 'age', 'height']) # 这就相当于定义了一个User类,且它有三个属性name,age,height
user_tuple = ('张三', '', '')
user = User(*user_tuple) # 使用元组,创建一个User对象 ,且将user_tuple中的元素依次赋值给user, 注意*号
print(user.name) # 张三 直接使用.xx 取值, 很方便啦 # 使用namedtuple的第二种方式
User = namedtuple("User", ['name', 'age', 'height', 'edu'])
user_tuple = ('张三', 12, 186)
# user = User(*user_tuple,'doctor') # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性
user = User(*user_tuple, edu='doctor') # 定义的User是四个属性,但是user_tuple中只有三个值, 但是可以在创建对象时添加其余属性
print(user.edu) # doctor 一样可以取到值
name, age, *other = user # 支持拆包操作
print(name, age, other) # 张三 12 [186, 'doctor'] # 使用namedtuple第三种方式
User = namedtuple("User", ['name', 'age', 'height', 'edu'])
user_tuple = ('张三', 12, 186, 'master')
user = User._make(user_tuple) # 使用_make方法创建对象实例,不过需要注意的是user_tuple中数据个数一定要与User中声明的属性个数相等
print(user) # User(name='张三', age=12, height=186, edu='master') # 使用namedtuple的第四种方式
User = namedtuple("User", ['name', 'age', 'height', 'edu'])
user_tuple = ('张三', 12, 186, 'master')
user = User._make(user_tuple)
user_dict = user._asdict() # 转换为一个排序的dict
print(user_dict) # OrderedDict([('name', '张三'), ('age', 12), ('height', 186), ('edu', 'master')]) # 注意: 以上示例使用user_tuple的地方都可以换成一个iterable对象
namedtuple的简单使用的更多相关文章
- collections模块之defaultdict()与namedtuple()方法简单介绍
一.defaultdict() 作用:根据数据创建字典时,需要为一些数据生成字典,而且对值得类型进行限定的时候,考虑defaultdict from collections import defaul ...
- 整理了8个Python中既冷门又实用的技巧
1.print 打印带有颜色的信息 大家知道 Python 中的信息打印函数 print,一般我们会使用它打印一些东西,作为一个简单调试. 但是你知道么,这个 Print 打印出来的字体颜色是可以设置 ...
- Python 实用冷门知识整理
1.print 打印带有颜色的信息 大家知道 Python 中的信息打印函数 print,一般我们会使用它打印一些东西,作为一个简单调试. 但是你知道么,这个 Print 打印出来的字体颜色是可以设置 ...
- python 简单了解namedtuple
namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护 namedtuple能够用来创建类似于元祖的数据类型,除了能够用索引 ...
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
- python中namedtuple介绍
namedtuple:namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护.namedtuple能够用来创建类似于元祖的数 ...
- python实现简单动画——生命游戏
生命游戏 生命游戏的宇宙是一个无限的,其中细胞的二维正交网格,每个细胞处于两种可能的状态之一,即*活着*或*死亡*(分别是*人口稠密*和*无人居住*).每个细胞与它的八个邻居相互作用,这八个邻居是水平 ...
- Python 简单入门指北(一)
Python 简单入门指北(一) Python 是一门非常容易上手的语言,通过查阅资料和教程,也许一晚上就能写出一个简单的爬虫.但 Python 也是一门很难精通的语言,因为简洁的语法背后隐藏了许多黑 ...
- collections集合模块 [namedtuple,deque,*]
collections是Python内建的一个集合模块,提供了许多有用的集合类. namedtuple namedtuple是一个函数, 它用来创建一个自定义的tuple对象,并且规定了 tuple元 ...
随机推荐
- 前后端分离项目中后台集成shiro需要注意的二三事
1. 修改 Shiro 认证失败后默认重定向处理问题 a. 继承需要使用的 ShiroFilter,重载 onAccessDenied() 方法: @Override protected boolea ...
- nw打包vue项目exe更换图标
web项目用nw打包好了之后发现没办法更换桌面显示图标问题,找了一下发现大多推荐Resource进行最后更换,试了第一次怎么也不管用,电脑重启了一下就行了...... 首先下载安装好了Resource ...
- 双系统(win10+ubuntu)卸载Ubuntu系统
之前装的双系统,Win10 和Ubuntu ,系统引导使用的是Ubuntu的Grup的引导, 直接删除Ubuntu会导致引导丢失,会很麻烦,win10直接会挂掉,后期恢复需要重建引导 安全删除思路,先 ...
- Learn Python the hard way, ex41 来自Percal 25 号星星的哥顿人
我承认,我偷懒了,少打了大量代码(剧情),英文太差,下次可以编个中文的试试 #!/urs/bin/python #coding:utf-8 from sys import exit from rand ...
- 使用gitlab的webhook进行前端自动部署
gitlab有个功能叫webhook,比较适合前端代码的自动部署.其中的逻辑在 http://172.30.83.152:30080/help/user/project/integrations/w ...
- [19/05/26-星期日] JavaScript_ 基本语法_运算符
一.概念 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- Python 特性?
1.Python 是强语言类型还是弱语言类型? Python 是强类型的动态脚本语言.强类型:不允许不同类型相加.动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候.脚本语言: ...
- 51nod - 1586 - 约数和 - 打表 - 思维
https://www.51nod.com/Challenge/Problem.html#problemId=1586 一眼看过去居然一点思路都没有的,一言不合就打表,打贡献表. #include & ...
- k8s结合helm部署
一.安装Helm helm教程以及安装可以参考这篇文章 二.Heml说明 常见的helm模板如下 myapp - chart 包目录名 ├── charts - 依赖的子包目录,里面可以包含多个依赖的 ...
- 开发chrome插件(扩展)
官方文档 https://developer.chrome.com/extensions/getstarted.html [干货]Chrome插件(扩展)开发全攻略 http://blog.haoji ...