这篇文章主要讲解了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。