collections応用
1557 ワード
最近プロジェクトをしているときに使いやすいパッケージを見つけました.これはPython内に構築された集合モジュールで、多くの有用な集合クラスを提供しています.以下に、私が役に立つと思うクラスや方法を記録します.1.counterCounterでは、要素の数を直接計算できます.
出力結果:Counter({'a':3,'b':2,'c':1})Counter({':2,'a':2,'d':1,'h':1,'k':1,'n':2,'o':1,'p':3,'r':1,'s':1,'y':2})
2.most_commonmost_commonはCounterの1つの方法で、Counterタイプ変数の上位のデータを迅速に取り出すことができます.例えば、前例の上位5のデータを取り出すことができます.
出力結果:[('p',3),('a',2),(',2),('n',2),('y',2)]]
3.defaultdictdefaultdictは、dictにキーが存在しない場合に放出されるKeyErrorを回避し、dictにキーが存在しない場合にデフォルト値を使用して置き換えることができます.
出力結果:defaultdict(int,{':2,'a':2,'d':1,'h':1,'k':1,'n':2,'o':1,'p':3,'r':1,'s':1,'y':2})
4.namedtuplenamedtuple不変集合tupleの要素の名前を指定できます
出力結果:(Info(name='abe',gender='m',age=30),'abe')
import collections
data1 = ['a','b','c','a','b','a']
col_1 = collections.Counter(data1)
data2 = 'python and pyspark'
col_2 = collections.Counter(data2)
print(col_1)
print(col_2)
出力結果:Counter({'a':3,'b':2,'c':1})Counter({':2,'a':2,'d':1,'h':1,'k':1,'n':2,'o':1,'p':3,'r':1,'s':1,'y':2})
2.most_commonmost_commonはCounterの1つの方法で、Counterタイプ変数の上位のデータを迅速に取り出すことができます.例えば、前例の上位5のデータを取り出すことができます.
print(col_2.most_common(5))
出力結果:[('p',3),('a',2),(',2),('n',2),('y',2)]]
3.defaultdictdefaultdictは、dictにキーが存在しない場合に放出されるKeyErrorを回避し、dictにキーが存在しない場合にデフォルト値を使用して置き換えることができます.
a = collections.defaultdict(int)
for item in data2:
a[item] += 1
print(a)
出力結果:defaultdict(int,{':2,'a':2,'d':1,'h':1,'k':1,'n':2,'o':1,'p':3,'r':1,'s':1,'y':2})
4.namedtuplenamedtuple不変集合tupleの要素の名前を指定できます
Info = collections.namedtuple('Info', ['name','gender','age'])
i = Info('abe','m','30')
print(i,i.name)
出力結果:(Info(name='abe',gender='m',age=30),'abe')