python中把元组转换为namedtuple方法


Posted in Python onDecember 09, 2020

我们可以把表里每一个横行的数据,看成是不同的元组。在理解了这个概念后,昨天我们学了不少的namedtuple类,是否也能把元组转换成namedtuple呢?当然这是一个尝试,很多小伙伴平时使用的时候会很少用到,而且资料的搜集方面也比较难找。小编也搜集了很久才有收获,本篇就为大家带来元组在python中转换为namedtuple的方法。

之前我们了解了为什么使用namedtuple,现在该学习如何将常规元组和转换为namedtuple了。假设由于某种原因,有包含彩色RGBA值的实例。如果要将其转换为Color namedtuple,则可以按以下步骤进行:

>>> c = {"r": 50, "g": 205, "b": 50, "alpha": alpha}
>>> Color(**c)
>>> Color(r=50, g=205, b=50, alpha=0)

我们可以利用该**结构将包解压缩dict为namedtuple。

元组类似于列表,是一个基于位置的有序对象集合,但是元组一旦创建之后就不能更改,因此列表中修改元素的操作对于元组都不适用。

使用()就可以创建元组,元素之间使用英文逗号,隔开。

num_tuple = (1, 2, 3)
string_tuple = ("a", )

如果我想从dict创建一个namedtupe,如何做?

>>> c = {"r": 50, "g": 205, "b": 50, "alpha": alpha}
>>> Color = namedtuple("Color", c)
>>> Color(**c)
Color(r=50, g=205, b=50, alpha=0)

过将dict实例传递给namedtuple工厂函数,它将为你创建字段。然后,Color像上边的例子一样解压字典c,创建新实例。

运行代码后,就可以把元组转换为namedtuple了。

元组转换为namedtuple实例扩展:

在内部使用namedtuples,但我想保持与提供普通元组的用户的兼容性。

from collections import namedtuple
tuplePi=(1,3.14,"pi") #Normal tuple 
Record=namedtuple("MyNamedTuple", ["ID", "Value", "Name"])
namedE=Record(2, 2.79, "e") #Named tuple
namedPi=Record(tuplePi) #Error
TypeError: __new__() missing 2 required positional arguments: 'Value' and 'Name'
tuplePi.__class__=Record
TypeError: __class__ assignment: only for heap types

到此这篇关于python中把元组转换为namedtuple方法的文章就介绍到这了,更多相关元组在python中如何转换为namedtuple内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 3.x 新特性及10大变化
Jun 12 Python
利用python爬取斗鱼app中照片方法实例
Dec 03 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
Python子类继承父类构造函数详解
Feb 19 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
centos7中安装python3.6.4的教程
Dec 11 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
python获取栅格点和面值的实现
Mar 10 Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 Python
Python类class参数self原理解析
Nov 19 Python
利用python实现后端写网页(flask框架)
Feb 28 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
python不同版本的_new_不同点总结
Dec 09 #Python
python中_del_还原数据的方法
Dec 09 #Python
call在Python中改进数列的实例讲解
Dec 09 #Python
python中的对数log函数表示及用法
Dec 09 #Python
如何利用python正则表达式匹配版本信息
Dec 09 #Python
python基于win32api实现键盘输入
Dec 09 #Python
用python实现一个简单的验证码
Dec 09 #Python
You might like
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
关于query Javascript CSS Selector engine
2013/04/12 Javascript
js中function()使用方法
2013/12/24 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python生成随机验证码(中文验证码)示例
2014/04/03 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python类装饰器实现方法详解
2018/12/21 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python requests使用socks5的例子
2019/07/25 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
物流专业求职信
2014/06/30 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
中秋客户感谢信
2015/01/22 职场文书
客服专员岗位职责
2015/02/10 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL