-- namedtuple
(具名元組),python元組的公升級版本
因為元組的侷限性:不能為元組內部的資料進行命名,所以往往我們並不知道乙個元組所要表達的意義,所以在這裡引入了collections.namedtuple
這個工廠函式,來構造乙個帶欄位名的元組。具名元組的例項和普通元組消耗的記憶體一樣多,因為欄位名都被存在對應的類裡面。這個類跟普通的物件例項比起來也要小一些,因為 python 不會用__dict__
來存放這些例項的屬性。
namedtuple
物件的定義如以下格式:
collections.namedtuple(typename, field_names, verbose=
false
, rename=
false
)
返回乙個具名元組子類 typename,其中引數的意義如下:
下面來看看宣告乙個具名元組及其例項化的方法:
import collections
# 兩種方法來給 namedtuple 定義方法名
#user = collections.namedtuple('user', ['name', 'age', 'id'])
user = collections.namedtuple(
'user'
,'name age id'
)user = user(
'tester'
,'22'
,'464643123'
)print
(user)
collections.namedtuple('user', 'name age id')
建立乙個具名元組,需要兩個引數,乙個是類名,另乙個是類的各個欄位名。後者可以是有多個字串組成的可迭代物件,或者是有空格分隔開的欄位名組成的字串(比如本示例)。具名元組可以通過欄位名或者位置來獲取乙個欄位的資訊。
輸出結果:
user(name='tester', age='22', id='464643123')
具名元組的特有屬性:
from collections import namedtuple
# 定義乙個namedtuple型別user,幷包含name,***和age屬性。
user = namedtuple(
'user',[
'name'
,'***'
,'age'])
# 建立乙個user物件
user = user(name=
'runoob'
, ***=
'male'
, age=12)
# 獲取所有欄位名
print
( user._fields )
# 也可以通過乙個list來建立乙個user物件,這裡注意需要使用"_make"方法
user = user._make(
['runoob'
,'male',12
])print
( user )
# user(name='user1', ***='male', age=12)
# 獲取使用者的屬性
print
( user.name )
print
( user.*** )
print
( user.age )
# 修改物件屬性,注意要使用"_replace"方法
user = user._replace(age=22)
print
( user )
# user(name='user1', ***='male', age=21)
# 將user物件轉換成字典,注意要使用"_asdict"
print
( user._asdict())
# ordereddict([('name', 'runoob'), ('***', 'male'), ('age', 22)])
以上例項輸出結果為:
('name', '***', 'age')
user(name='runoob', ***='male', age=12)
runoob
male
12user(name='runoob', ***='male', age=22)
ordereddict([('name', 'runoob'), ('***', 'male'), ('age', 22)])
python 元組, 元組應用
元組可以存放不同型別的資料 元組中的資料不能被修改 如果元組中有列表,可以修改列表中的資料 語法 變數 資料1,資料2,資料3,型別是 my tuple isaac 18 3.14 true print my tuple print type my tuple 控制台輸出 isaac 18 3.14...
python元組型別說法 Python 元組型別
一 元組簡介 1 元組用中括號 來定義,比如 tuple 1,2,3,4 2 元組中的元素索引值從 0 開始,元組支援索引和切片操作,且元組元素支援多種型別 3 數字 字串 元組都是不可變型別,這意味著一旦乙個物件被定義了,它的值就不能再被更新,除非重新建立乙個新的物件 二 元組的基本操作 1 建立...
python元組排序 python元組怎麼排序
元組tuple是不可改變的資料型別,不能修改元組中的元素,不能刪除元素,不能新增元素。元組是受限制的列表。不能對元組進行排序。python中的列表是可變物件,對可變物件可以排序,比如說 l.sort 或者sorted l 但在元組資料結構中,因為元組是不可變物件,不會提供列表中的這些方法,方法就是先...