亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python具名元組有什么作用

發布時間:2021-11-25 11:57:32 來源:億速云 閱讀:173 作者:iii 欄目:互聯網科技

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

具名元組的定義

Python標準庫collections中定義了具名元組(namedtuple)工廠函數,它可以構建帶字段名的元組。

工廠函數參數詳解

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

namedtuple工廠函數的參數詳解:

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

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

  • 內部元素都是字符串的列表或元組;

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

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

    例如'商品,單價,數量'

字段名命名規則:

  • 不能與關鍵字重名

  • 不能以下劃線開頭

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

rename:默認是False,意思是必須指定字段名。若為True,系統會對缺省的、重復的字段名自動重命名為'_索引值'。

defaults:設置默認值,可以是列表、元組,當字段數量大于defaults的元素數量時,后面的字段獲得缺省值。

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

module:設置所屬模塊,默認是'__main__'。

讀取文件到具名元組

具名元組使用案例如下:

from collections import namedtuple


def file_to_list(file):
    with open(file, encoding='utf8') as f:
        # 創建具名元組構造器,具名元組名稱是goods,字段名源自文件首行(除去頭尾空白符)
        # 具名元組構造器的變量名是goods。
        goods = namedtuple('goods', f.readline().strip())
        fruit_list = []
        for line in f:
            if len(line) < 3:  # 過濾空行及數據不完整的行。
                continue
            # 讀取一行文件內容,去除頭尾空白符,以','分割成列表
            # 用*打散列表,將列表中的元素分別作為參數傳入goods具名元組構造器
            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].單價, l1[1].數量)
print(l1[1][0], l1[1][1], l1[1][2])
print(l1[2][0], l1[1][1:3])


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

通過以上案例可以了解怎么創造具名元組構造器,怎么用具名元組構造器創建具名元組。

具名元組的優點

具名元組有以下幾個優點:

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

  2. 具名元組和元組存儲數據消耗的內存是一樣的,與字典相比大大節省空間。

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

腾冲县| 新巴尔虎右旗| 布拖县| 黔西| 丽水市| 钦州市| 禹州市| 门源| 瑞金市| 个旧市| 会泽县| 庄浪县| 临西县| 云林县| 张家川| 鞍山市| 五大连池市| 海丰县| 襄城县| 凉山| 重庆市| 区。| 长沙市| 吴江市| 英山县| 阿克陶县| 增城市| 疏附县| 通城县| 西昌市| 宜兰市| 双辽市| 红安县| 南乐县| 阳春市| 长顺县| 富平县| 昭通市| 韶山市| 宁都县| 农安县|