Python 中的命名元组
本文解释了命名元组,何时以及如何使用它,以及 Python 中普通元组和命名元组之间的区别。
什么是 Python 中的命名元组
命名元组是一种特殊的元组,它具有元组的所有功能。命名元组是在 Python 2.6 中引入的。就像字典一样,命名元组包含键值对。
可以使用它的键和索引来访问一个值。它类似于 C 语言中的结构。
Python 中简单元组和命名元组之间的区别
命名元组
是一个简单元组的对象表示。它是简单元组的子类,具有使用工厂函数以编程方式创建的命名变量。
我们可以使用点运算符和命名元组的引用变量以及使用项目的索引和引用变量来访问命名元组的项。在一个简单的元组中,我们只能使用项目的索引和引用变量来访问它。
在 Python 中何时使用命名元组而不是简单元组
当我们希望我们的代码看起来干净、易于理解且更具 Python 风格时,我们使用命名元组而不是简单元组。
例如,在字典的情况下,person.age
看起来比 person['age']
更清晰。而且,在简单元组的情况下,person.age
看起来也比 person[1]
更干净。
在 Python 中如何使用命名元组
要生成命名元组,我们首先导入集合模块中的工厂函数 namedtuple()
。工厂函数是用于制造一类不同原型的函数。
使用这个工厂函数,我们指定类的名称和属性。所以一般语法如下。
Class_Name = namedtuple('Class_Name', ['field_1', 'field_2', ....., 'field_n'])
然后我们可以实例化这个类。实例化类将创建一个对象并将值分配给相应的字段。
所以一般语法如下。
Ref_Variable_Name = Class_Name('Value_1', 'Value_2', ....., 'Value_n')
我们可以使用点表示法访问特定字段的值。所以一般语法如下。
Ref_Variable_Name.field_name
在下面的完整示例代码中,类的名称是 Person
,它的属性是 name
和 age
。然后我们创建类 Person
的实例 p1
。
现在,这个实例 p1
是一个命名元组。我们已经使用对象表示法和代码中带有引用变量的索引访问了类变量。
但是对象表示法更清晰易懂,这就是命名元组背后的动机。
示例代码:
# python 3.x
from collections import namedtuple
Person = namedtuple("Person", ["name", "age"])
p1 = Person("Jhon", "20")
print("Accessing values using index:")
print("Person Name:", p1[0])
print("Person Age:", p1[1])
print("Accessing Values using key:")
print("Person Name:", p1.name)
print("Person Age:", p1.age)
输出:
# python 3.x
Accessing values using index:
Person Name: Jhon
Person Age: 20
Accessing Values using key:
Person Name: Jhon
Person Age: 20
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn