python中把元組轉(zhuǎn)換為namedtuple方法
我們可以把表里每一個(gè)橫行的數(shù)據(jù),看成是不同的元組。在理解了這個(gè)概念后,昨天我們學(xué)了不少的namedtuple類,是否也能把元組轉(zhuǎn)換成namedtuple呢?當(dāng)然這是一個(gè)嘗試,很多小伙伴平時(shí)使用的時(shí)候會(huì)很少用到,而且資料的搜集方面也比較難找。小編也搜集了很久才有收獲,本篇就為大家?guī)?lái)元組在python中轉(zhuǎn)換為namedtuple的方法。
之前我們了解了為什么使用namedtuple,現(xiàn)在該學(xué)習(xí)如何將常規(guī)元組和轉(zhuǎn)換為namedtuple了。假設(shè)由于某種原因,有包含彩色RGBA值的實(shí)例。如果要將其轉(zhuǎn)換為Color namedtuple,則可以按以下步驟進(jìn)行:
>>> c = {'r': 50, 'g': 205, 'b': 50, 'alpha': alpha}>>> Color(**c)>>> Color(r=50, g=205, b=50, alpha=0)
我們可以利用該**結(jié)構(gòu)將包解壓縮dict為namedtuple。
元組類似于列表,是一個(gè)基于位置的有序?qū)ο蠹希窃M一旦創(chuàng)建之后就不能更改,因此列表中修改元素的操作對(duì)于元組都不適用。
使用()就可以創(chuàng)建元組,元素之間使用英文逗號(hào),隔開(kāi)。
num_tuple = (1, 2, 3)string_tuple = ('a', )
如果我想從dict創(chuàng)建一個(gè)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)
過(guò)將dict實(shí)例傳遞給namedtuple工廠函數(shù),它將為你創(chuàng)建字段。然后,Color像上邊的例子一樣解壓字典c,創(chuàng)建新實(shí)例。
運(yùn)行代碼后,就可以把元組轉(zhuǎn)換為namedtuple了。
元組轉(zhuǎn)換為namedtuple實(shí)例擴(kuò)展:
在內(nèi)部使用namedtuples,但我想保持與提供普通元組的用戶的兼容性。
from collections import namedtupletuplePi=(1,3.14,'pi') #Normal tuple Record=namedtuple('MyNamedTuple', ['ID', 'Value', 'Name'])namedE=Record(2, 2.79, 'e') #Named tuplenamedPi=Record(tuplePi) #ErrorTypeError: __new__() missing 2 required positional arguments: ’Value’ and ’Name’tuplePi.__class__=RecordTypeError: __class__ assignment: only for heap types
到此這篇關(guān)于python中把元組轉(zhuǎn)換為namedtuple方法的文章就介紹到這了,更多相關(guān)元組在python中如何轉(zhuǎn)換為namedtuple內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. IntelliJ IDEA導(dǎo)入jar包的方法2. SSM框架JSP使用Layui實(shí)現(xiàn)layer彈出層效果3. 刪除docker里建立容器的操作方法4. IntelliJ IDEA導(dǎo)出項(xiàng)目的方法5. .Net中的Http請(qǐng)求調(diào)用詳解(Post與Get)6. 解決python DataFrame 打印結(jié)果不換行問(wèn)題7. java使用xfire搭建webservice服務(wù)的過(guò)程詳解8. Java導(dǎo)出Execl疑難點(diǎn)處理的實(shí)現(xiàn)9. python 調(diào)用API接口 獲取和解析 Json數(shù)據(jù)10. Python如何測(cè)試stdout輸出
