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