首先講講什麼是namedtuple。
namedtuple能夠用來建立類似於元祖的資料型別,除了能夠用索引來訪問資料,能夠迭代,更能夠方便的通過屬性名來訪問資料。
在python中,傳統的tuple類似於陣列,只能通過下標來訪問各個元素,我們還需要注釋每個下標代表什麼資料。通過使用namedtuple,每個元素有了自己的名字,類似於c語言中的struct,這樣資料的意義就可以一目了然了。
from collections import namedtuple
user = namedtuple('user', ('name', 'age', '***'))
上面的**就建立了乙個user類,並且擁有3個屬性name,age和***。預設建立user類物件的時候,所有屬性都需要賦值。
下面的寫法會丟擲異常:
# typeerror: __new__()
# missing
3 required positional arguments: 'name', 'age', and '***'
a = user()
print(a)
正確的寫法:
a = user(name='zhe', age=21, ***='male')
print(a)
但是我們可以為每個namedtuple物件賦予預設值:
user.__new__.__defaults__ = ('zhe', 21, 'male')
這個就可以執行:
a = user()
# user(name='zhe', age=21, ***='1')
print(a)
更高階的用法,假設下面的field類,我們需求name為必填,而required和location有預設值,則可以有如下寫法:
field = namedtuple('field', [
'name', 'required', 'location'
])field.__new__.__defaults__ = (false, '')
f = field(name='zhexiao')
print(f)
Golang json化時允許賦予預設值
演示omitempty package main import encoding json fmt func main type person struct var coder person var level int 0 coder.level level coder.name mike byte...
預設值清洗
預設值是資料中最常見的乙個問題,處理預設值有很多方式,主要包括以下四個步驟進行預設值處理 確定預設值範圍 去除不需要的字段 填充預設值內容 重新獲取資料 注意 最重要的是預設值內容填充。在進行確定預設值範圍的時候,對每個欄位都計算其缺失比例,然後按照缺失比例和字段重要性分別指定不同的策略 重要性高,...
解構給預設值 解構賦值預設值誤區
問題還原 這是最近 cr 的時候在業務 中發現了乙個問題,先來看一下問題 data 為介面返回的資料 const total 0 data.result const list bizobject.list 其他邏輯,比如把 list 更新到 state 中,等等 a 介面正常的情況 data 中有 ...