為元組中的每個(gè)元素命名,提高程序可讀性

案例:
學(xué)生信息系統(tǒng)中數(shù)據(jù)為固定格式:{名字,年齡,性別,郵箱.....}

(元組優(yōu)勢(shì):存儲(chǔ)空間小,訪問(wèn)速度快)
學(xué)生數(shù)量很大為了減小存儲(chǔ)開銷,對(duì)每個(gè)學(xué)生信息用元組表示:

('jim',16,'male','jim@qq.com')
('lilei',18,'male','lilei@qq.com')
('lucy',17,'female','lucy@qq.com')

但是我們使用索引訪問(wèn),大量使用索引降低了程序的可讀性,如何解決這個(gè)問(wèn)題

方案一:定義類似其他語(yǔ)言的枚舉類型,也就是定義一系列數(shù)值常量
方案二:使用標(biāo)準(zhǔn)庫(kù)中的collections.namedtuple代替內(nèi)置tuple

from collections import namedtuple

student = ('jim',16,'male','jim@qq.com')

print(student[0],student[2])

# 方案一

NAME, AGE, sex, EMAIL = range(4)

print(student[NAME],student[EMAIL])

# 方案二
# namedtuple返回一個(gè)內(nèi)置元組的子類,
# 第一個(gè)參數(shù)是新創(chuàng)建子類的類名,第二個(gè)參數(shù)是一系列名字,對(duì)應(yīng)每個(gè)索引的名字
# 相當(dāng)于一個(gè)類的工廠
# 開銷僅比內(nèi)置元組大一點(diǎn)
Student = namedtuple('Student',('name', 'age', 'sex', 'email'))
s1 = Student('jim',16,'male','jim@qq.com')
s2 = Student(name='lilei',age=18,sex='male',email='lilei@qq.com')
print(s1.email)
print(s2.name)
print(isinstance(s1,tuple))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容