Python “命名元组”是什么

Python “命名元组”是什么

命名元组是集合模块中存在的一种容器类型。Python中的 namedtuple() 函数允许创建带有字段名和其定义的元组,类似于字典(键值对)。

命名元组相比于字典的优势在于可以通过键和值进行访问。

语法

创建命名元组的语法如下所示:

namedtuple(Name,[ Values name])

在此处,

  • 您想要称为NamedTuple的内容由占位符 Name 确定。

  • 各个值或属性的名称列表由占位符 Values name 显示。

创建一个命名元组

要在Python中创建一个命名元组,需要从collections模块中导入 namedtuple 。然后,实例化一个构造函数,该构造函数接受命名元组的名称和包含字段名称的字符串。

示例

在以下示例代码中,我们创建了一个命名元组,即student,其中字段为rollnumber、name、age和marks。

from collections import namedtuple
student = namedtuple('student',('rollnumber ,name, age, marks'))
student1 = student(rollnumber =1, name='Krishna', age= 25, marks=90)
print(student1.rollnumber)
print(student1.name)
student2 = student(rollnumber =2, name='Ram', age= 20, marks=80)
print(student2.name)
print(student2.age)

输出

在执行上述程序时,将获得以下输出。

1
Krishna
Ram
20

访问元组的字段

我们可以通过以下几种方式访问元组的字段:

  • 通过索引访问 - 使用 namedtuple() 函数的属性值可以按索引访问,因为它们是有序的。

  • 通过键名访问 - 可以像字典一样通过键名访问属性值。

  • 使用getattr() - 这是另一种访问 namedtuple() 函数给定键值的方法。

示例

在以下示例代码中,我们已经使用了上述三种方法来访问字段值,即通过索引访问、通过键名访问和使用 getattr() 方法。

from collections import namedtuple
employee = namedtuple('employee',('id ,name, age, company'))
emp1 = employee(id =1, name='Krishna', age= 35, company='Tutorialspoint')
print("The employee name is accesed using index: ", end="")
print(emp1[1])
print("The employee age is accessed using keyname: ", end="")
print(emp1.age)
print("The employee company name is accessed using getattr(): ", end="")
print(getattr(emp1,'company'))

输出

在执行上述程序后,我们获得以下输出。

The employee name is accesed using index: Krishna
The employee age is accessed using keyname: 35
The employee company name is accessed using getattr(): Tutorialspoint

具有默认值的命名元组

类似于我们如何为常规类的属性设置默认值,可以使用默认参数创建命名元组类。由于具有默认值的字段应出现在所有没有默认值的字段之后,因此默认值应提供给最右边的属性。

示例

在以下示例中,动物类有一个默认条目 –

from collections import namedtuple
animal = namedtuple("animal", ["Name","Class","Kingdom","Phylum","Genus"], defaults = ['Panthera'])
anim = animal("Lion", "Mammalia", "Animalia", "Chordata")
print ('The named tuple with default values are:',anim) 

输出

如果我们只用一个值创建NamedTuple,’Panthera’将作为‘Genus’的默认值,它是我们声明右侧的字段,如下所示的输出−

The named tuple with default values are: animal(Name='Lion', Class='Mammalia', Kingdom='Animalia', Phylum='Chordata', Genus='Panthera')

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程