nametuple高度なデータ型
1352 ワード
namedtupleの要件:
メタグループの限界:メタグループ内部のデータに名前を付けることができないため、メタグループが表す意味を知らないことが多いため、ここでcollectionsを導入した.namedtupleというファクトリ関数は,フィールド名付きメタグループを構築する.名前付きメタグループのインスタンスは、フィールド名が対応するクラスに存在するため、通常のメタグループと同じようにメモリを消費します.このクラスは、Pythonがdictでこれらのインスタンスのプロパティを格納しないため、通常のオブジェクトインスタンスに比べても小さくなります.
実装方法
1.反復可能かどうかを判断します.
2.辞書key値回数統計
3.名前付きメタグループ
t = ("kiosk", 'pts/0', 'localhost')
info = {'kiosk' : {
'name': "kiosk",
'node': 'localhost'
}}
メタグループの限界:メタグループ内部のデータに名前を付けることができないため、メタグループが表す意味を知らないことが多いため、ここでcollectionsを導入した.namedtupleというファクトリ関数は,フィールド名付きメタグループを構築する.名前付きメタグループのインスタンスは、フィールド名が対応するクラスに存在するため、通常のメタグループと同じようにメモリを消費します.このクラスは、Pythonがdictでこれらのインスタンスのプロパティを格納しないため、通常のオブジェクトインスタンスに比べても小さくなります.
実装方法
def namedtuple(typename, field_names, *, verbose=False, rename=False, module=None):
- typename:
- field_names :
- rename: python , rename=True
1.反復可能かどうかを判断します.
import random
from collections import Iterable
print(isinstance('hello', Iterable))
2.辞書key値回数統計
from collections import Counter
# key , .
ips = ['172.25.254.%s' %(random.randint(1, 25)) for ip in range(1000)]
c = Counter(ips)
print(c.most_common())
print(c.most_common(3))
3.名前付きメタグループ
from collections import namedtuple
User = namedtuple("User", ['name', 'age', 'scores'])
u = User('fentiao', 10, 100)
print(u)
print(u.name)
print(u.age)
print(u.scores)