python公升級元組namedtuple

2021-09-01 23:55:35 字數 2338 閱讀 2137

-- 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 但在元組資料結構中,因為元組是不可變物件,不會提供列表中的這些方法,方法就是先...