利用python怎么将元组转换为namedtuple?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
如果要将其转换为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的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。