Python 中的命名元组
本文解释了命名元组,何时以及如何使用它,以及 Python 中普通元组和命名元组之间的区别。
命名元组是一种特殊的元组,它具有元组的所有功能。命名元组是在 Python 2.6 中引入的。就像字典一样,命名元组包含键值对。
可以使用它的键和索引来访问一个值。它类似于 C 语言中的结构。
命名元组
是一个简单元组的对象表示。它是简单元组的子类,具有使用工厂函数以编程方式创建的命名变量。
我们可以使用点运算符和命名元组的引用变量以及使用项目的索引和引用变量来访问命名元组的项。在一个简单的元组中,我们只能使用项目的索引和引用变量来访问它。
当我们希望我们的代码看起来干净、易于理解且更具 Python 风格时,我们使用命名元组而不是简单元组。
例如,在字典的情况下,person.age
看起来比 person['age']
更清晰。而且,在简单元组的情况下,person.age
看起来也比 person[1]
更干净。
要生成命名元组,我们首先导入集合模块中的工厂函数 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
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串