命名元組nametuple

關(guān)于tuple的一些知識(shí)點(diǎn)

tuple的一些特性

  • 不可變性
  • 可迭代(iterable)當(dāng)對(duì)象包含 __iter__或者 __getitem__ 就是可迭代對(duì)象
  • 拆包 (包含位置信息)
  • 不可變不是絕對(duì)的(當(dāng)包含可變對(duì)象的時(shí)候,如列表)

tuple比list好的地方
tuple是不可變的,immutable的重要性

  • 性能優(yōu)化:指元素全為immutable的tuple會(huì)作為常量在編譯的時(shí)候哪廓,因此產(chǎn)生了顯著地速度差異
  • 線程安全
  • 可以作為dict的key(immutable可哈希)
  • 拆包特性
user_tuple = ("hongshaorou", 26, 172)

name, *other = user_tuple

user_tuple = [1,2,3]

a, b, c = user_tuple

關(guān)于nametuple的知識(shí)點(diǎn)

# 我們是使用namedtuple生成類,而不是對(duì)象
from collections import namedtuple
# 生成類
User = namedtuple("User", ["name", "age", "height"])
# 根據(jù)類創(chuàng)建命名實(shí)例
user = User(name="hongshaorou", age=24, height=165)
#我們可以使用點(diǎn)獲得屬性值
print(user.age, user.name, user.height)

相當(dāng)于 創(chuàng)建一個(gè)類

class User:
    def __init__(self, name, age, heught):
        pass

為什么我們不使用創(chuàng)建類的方式而是使用nametuple?

第一點(diǎn): 使用nametuple簡(jiǎn)潔
第二點(diǎn): 使用nametuple節(jié)省空間叉钥,省了很多創(chuàng)建類的時(shí)候的內(nèi)置變量

實(shí)例: user 表的數(shù)據(jù)全部取出然后加一個(gè)列

User = namedtuple("User", ["name", "age", "height", "edu"])
user_type = ("hongshaorou", 24, 165)
user = User(*user_type, "master")

user_dict = {
    "name": "hongshaorou",
    "age": 24,
    "height": 165
}

user = User(**user_dict, edu="master")

方法的使用

user_type = ("hongshaorou", 24, 165, "master")
user_list = ["hongshaorou", 24, 165, "master"]
user_dict = {
    "name": "hongshaorou",
    "age": 24,
    "height": 165,
    "edu": "master"
}

對(duì)于 _make()方法傳入的只要是可迭代對(duì)象都可以,但是傳入的數(shù)值個(gè)數(shù)必須和屬性值一致 當(dāng)傳入字典的時(shí)候校读,不會(huì)有值

user = User._make(user_type)
user = User._make(user_list)
# user = User._make(user_dict)

因?yàn)閚ametuple繼承tuple 因此同意具有拆包的功能

name, age, *other = user

對(duì)于 _asdict 方法會(huì)將nametuple轉(zhuǎn)化為OrderDict

user_info_dict = user._asdict()

如果疑問(wèn)錯(cuò)誤請(qǐng)私信沼侣,運(yùn)行結(jié)果暫時(shí)未給出,下篇將會(huì)在ipython環(huán)境下歉秫,運(yùn)行結(jié)果一并顯示蛾洛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市雁芙,隨后出現(xiàn)的幾起案子轧膘,更是在濱河造成了極大的恐慌,老刑警劉巖兔甘,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谎碍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡洞焙,警方通過(guò)查閱死者的電腦和手機(jī)蟆淀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門拯啦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人熔任,你說(shuō)我怎么就攤上這事褒链。” “怎么了疑苔?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵甫匹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我惦费,道長(zhǎng)兵迅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任薪贫,我火速辦了婚禮恍箭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞧省。我一直安慰自己季惯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布臀突。 她就那樣靜靜地躺著,像睡著了一般贾漏。 火紅的嫁衣襯著肌膚如雪候学。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天纵散,我揣著相機(jī)與錄音梳码,去河邊找鬼。 笑死伍掀,一個(gè)胖子當(dāng)著我的面吹牛掰茶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜜笤,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼濒蒋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了把兔?” 一聲冷哼從身側(cè)響起沪伙,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎县好,沒(méi)想到半個(gè)月后围橡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缕贡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年翁授,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拣播。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡收擦,死狀恐怖贮配,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炬守,我是刑警寧澤牧嫉,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站减途,受9級(jí)特大地震影響酣藻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鳍置,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一辽剧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧税产,春花似錦怕轿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至衫冻,卻和暖如春诀紊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隅俘。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工邻奠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人为居。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓碌宴,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蒙畴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贰镣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359