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元 ...
随机推荐
- Zipf's law
w https://www.bing.com/knows/search?q=马太效应&mkt=zh-cn&FORM=BKACAI 马太效应(Matthew Effect),指强者愈强. ...
- PJSIP Socket 模型
前些日子为解决项目中问题调试到PJSIP Socket收发数据部分 ,好记性不如烂笔头,记录下 PJSIP 使用的Socket 模型 ,以备后用. 不同平台下PJSIP采用不同的 Socket模型,W ...
- 在Linux环境中运行python 项目
1首先创建一个虚拟环境或者在一个已有的虚拟环境中创建一个django项目 1.1 创建一个虚拟环境: mkvirtualenv my_django115 这会在 ~/Envs 中创建 my_djang ...
- C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结
1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...
- vueStudy
目录层次: 目前学习曲线有三个前端开发,每个人有各自的目录,可以很好地对比彼此的代码. unit1 邮箱验证 用户名 数字.字母.中文 .划线不能以下划线开头 2-12位 密码验证 6-20位英文和 ...
- 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)
洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...
- Python笔记(读取txt文件中的数据)
在机器学习中,常常需要读取txt文本中的数据,这里主要整理了两种读取数据的方式 数据内容 共有四列数据,前三列为特征值,最后一列为数据标签 40920 8.326976 0.953952 3 1448 ...
- Antd-react-mobile项目学习中遇到的问题记录(持续更新)
1.Error:The "injectBabelPlugin" helper has been deprecated as of v2.0. You can use customi ...
- SSH简单概念
Spring:轻量级控制反转(IoC)和面向切面(AOP)的容器框架,让对象与对象之间的关系通过配置文件来管理,减低耦合度 IoC:凡是在容器中配置过的对象才会有Spring提供的服务和功能 AOP: ...
- xps9560黑苹果展示
花费了一些时间来安装黑苹果 - - ., 展示一波 更换了DW1820a无线网卡,花费70+ 手上这台笔记本,在安装黑苹果的时候基本没遇见太大的问题,一路顺风顺水. 桌面,程序坞调小放在左侧 极 ...