溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python具名元組有什么作用

發(fā)布時(shí)間:2021-11-25 11:57:32 來源:億速云 閱讀:173 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“python具名元組有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python具名元組有什么作用”吧!

具名元組的定義

Python標(biāo)準(zhǔn)庫collections中定義了具名元組(namedtuple)工廠函數(shù),它可以構(gòu)建帶字段名的元組。

工廠函數(shù)參數(shù)詳解

變量名 = namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)

namedtuple工廠函數(shù)的參數(shù)詳解:

typename:定義具名元組的名稱,字符串型。

field_names:定義具名元組的字段名。該參數(shù)可以使用2種格式:

  • 內(nèi)部元素都是字符串的列表或元組;

    例如['商品','單價(jià)',’數(shù)量']或('商品','單價(jià)',’數(shù)量')

  • 以英文逗號','分隔的長字符串。字段名必須符合以下規(guī)則:

    例如'商品,單價(jià),數(shù)量'

字段名命名規(guī)則:

  • 不能與關(guān)鍵字重名

  • 不能以下劃線開頭

  • 以字母(包括漢字)開頭,由字母、數(shù)字、下劃線組成。

rename:默認(rèn)是False,意思是必須指定字段名。若為True,系統(tǒng)會對缺省的、重復(fù)的字段名自動重命名為'_索引值'。

defaults:設(shè)置默認(rèn)值,可以是列表、元組,當(dāng)字段數(shù)量大于defaults的元素?cái)?shù)量時(shí),后面的字段獲得缺省值。

例如字段名有'a','b','c'這3個(gè),缺省值給了'1','2'兩個(gè)缺省值時(shí),'b'=1,'c'=2。

module:設(shè)置所屬模塊,默認(rèn)是'__main__'。

讀取文件到具名元組

具名元組使用案例如下:

from collections import namedtuple


def file_to_list(file):
    with open(file, encoding='utf8') as f:
        # 創(chuàng)建具名元組構(gòu)造器,具名元組名稱是goods,字段名源自文件首行(除去頭尾空白符)
        # 具名元組構(gòu)造器的變量名是goods。
        goods = namedtuple('goods', f.readline().strip())
        fruit_list = []
        for line in f:
            if len(line) < 3:  # 過濾空行及數(shù)據(jù)不完整的行。
                continue
            # 讀取一行文件內(nèi)容,去除頭尾空白符,以','分割成列表
            # 用*打散列表,將列表中的元素分別作為參數(shù)傳入goods具名元組構(gòu)造器
            line = goods(*(line.strip().split(',')))
            fruit_list.append(line)
    return fruit_list


l1 = file_to_list('list.txt')
print(l1[0])
print(l1[0].商品, l1[1].單價(jià), l1[1].數(shù)量)
print(l1[1][0], l1[1][1], l1[1][2])
print(l1[2][0], l1[1][1:3])


out:
goods(商品='蘋果', 單價(jià)='4.8', 數(shù)量='5')
蘋果 2.9 10
雪梨 2.9 10
大棗 ('2.9', '10')

通過以上案例可以了解怎么創(chuàng)造具名元組構(gòu)造器,怎么用具名元組構(gòu)造器創(chuàng)建具名元組。

具名元組的優(yōu)點(diǎn)

具名元組有以下幾個(gè)優(yōu)點(diǎn):

  1. 具名元組是元組的子類,繼承了元組的所有特性,也就是說具名元組可以用所有元組可用的方法和屬性。

  2. 具名元組和元組存儲數(shù)據(jù)消耗的內(nèi)存是一樣的,與字典相比大大節(jié)省空間。

  3. 具名元組可以用字段名訪問數(shù)據(jù),大大提高代碼的可讀性。

感謝各位的閱讀,以上就是“python具名元組有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對python具名元組有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI