您好,登錄后才能下訂單哦!
這篇文章主要講解了“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')
通過以上案例可以了解怎么創造具名元組構造器,怎么用具名元組構造器創建具名元組。
具名元組有以下幾個優點:
具名元組是元組的子類,繼承了元組的所有特性,也就是說具名元組可以用所有元組可用的方法和屬性。
具名元組和元組存儲數據消耗的內存是一樣的,與字典相比大大節省空間。
具名元組可以用字段名訪問數據,大大提高代碼的可讀性。
感謝各位的閱讀,以上就是“python具名元組有什么作用”的內容了,經過本文的學習后,相信大家對python具名元組有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。