python 菜鳥 3 0 Python3 元組

2021-10-10 02:19:37 字數 2330 閱讀 8488

python元組的公升級版本 -- namedtuple(具名元組)

因為元組的侷限性:不能為元組內部的資料進行命名,所以往往我們並不知道乙個元組所要表達的意義,所以在這裡引入了 collections.namedtuple 這個工廠函式,來構造乙個帶欄位名的元組。具名元組的例項和普通元組消耗的記憶體一樣多,因為欄位名都被存在對應的類裡面。這個類跟普通的物件例項比起來也要小一些,因為 python 不會用 __dict__ 來存放這些例項的屬性。

namedtuple 物件的定義如以下格式:

collections.namedtuple(typename, field_names, verbose=false, rename=false)

返回乙個具名元組子類 typename,其中引數的意義如下:

typename:元組名稱

field_names: 元組中元素的名稱

rename: 如果元素名稱中含有 python 的關鍵字,則必須設定為 rename=true

verbose: 預設就好

下面來看看宣告乙個具名元組及其例項化的方法:

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')

具名元組的特有屬性:

類屬性 _fields:包含這個類所有欄位名的元組

類方法 _make(iterable):接受乙個可迭代物件來生產這個類的例項

例項方法 _asdict():把具名元組以 collections.orderedict 的形式返回,可以利用它來把元組裡的資訊友好的展示出來

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

user(name='runoob', ***='male', age=22)

ordereddict([('name', 'runoob'), ('***', 'male'), ('age', 22)])

mqslllduoduo

mqslllduoduo

494***[email protected]年前 (2018-03-30)

菜鳥學python文件 菜鳥學習python筆記

1.模組 三種呼叫方法 1.在vim寫的乙個python的檔案 運用import 匯入,就可以在互動模式的直接進行呼叫 2.呼叫模組裡面的某個函式 from 模組名字 in 函式名字 3.將模組名字變短進行呼叫 import 模組原名 as 新名字 2.基於python開發的東西存放目錄 usr l...

python3菜鳥教程100例 Python3

python3 字典 字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字。乙個簡單的字典例項 也可如此建...

Java菜鳥學習日記30

bootstrap 響應式按鈕 表現效果 手機上全寬,桌面上2列寬 原理 btn block 會將按鈕變成全寬,但桌面上 col sm 2 生效,按鈕被限制在2列寬中,手機上col sm 2失效 在自己的專案中整合第三方外掛程式或功能 找到所有的依賴項 css js jar 配置檔案 並且注意依賴項...