nametuple高度なデータ型

1352 ワード

namedtupleの要件:
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)