Python collections.counter
22199 ワード
collections
このモジュールは特殊なコンテナデータ型を実現し、Pythonの汎用内部コンテナdict、list、set、tupleに代替案を提供する.
各種カウンタの入力値
-lst=[aa]、[cc]、[dd]、[aa]、[bb]、[ee]の要素数を収集します.取得にはCounter()を使用します.出力結果はDictionary形式を返します.
import collections
lst = ['aa', 'cc', 'dd', 'aa', 'bb', 'ee']
print(collections.Counter(lst))
> Counter({'aa': 2, 'cc': 1, 'dd': 1, 'bb': 1, 'ee': 1})
- collections.次の例に示すように、Counter()は要素数の多いものから出力される.
入力値がDictionaryで表示されている場合、結果値もDictionaryです.
import collections
print(collections.Counter({'가': 3, '나': 2, '다': 4}))
> Counter({'다': 4, '가': 3, '나': 2})
- collections.counter()の値=個数.
collections.偶数(a=2、b=3、c=2)は、["a"、"a"、"b"、"b"、"c"、"c]]に等しい.
import collections
c = collections.Counter(a=2, b=3, c=2)
print(collections.Counter(c))
print(sorted(c.elements()))
> Counter({'b': 3, 'c': 2, 'a': 2})
> ['a', 'a', 'b', 'b', 'b', 'c', 'c']
*文字列を入力すると、
{문자 : 개수}
のバイナリ形式が返されます.import collections
container = collections.Counter()
container.update("aabcdeffgg")
print(container)
> Counter({'f': 2, 'g': 2, 'a': 2, 'e': 1, 'b': 1, 'c': 1, 'd': 1})
for k,v in container.items():
print(k,':',v)
> f : 2
> e : 1
> b : 1
> g : 2
> c : 1
> a : 2
> d : 1
Counterでの方法
*繰り返しカウントされた要素のイテレーションを返します.要素は最初に発見された順序で返されます.要素数が1未満の場合、elements()は無視されます.
c = Counter(a=4, b=2, c=0, d=-2)
print(sorted(c.elements()))
> ['a', 'a', 'a', 'a', 'b', 'b']
*は、n個の最も一般的な要素とその数が最も一般的から最も少ないリストを返します.nまたはNoneを省略すると、most common()はカウンタ内のすべての要素を返します.同じ数の要素は、最初に発見された順序を維持します.
c = Counter('abracadabra').most_common(3)
print(c)
> [('a', 5), ('b', 2), ('r', 2)]
*反復可能または他のマッピング(またはカウンタ)から要素を抽出します.dict.update()と似ていますが、置換された個数を減算します.入力と出力はいずれも0または負の値です.従来のディックシャーメソッドはカウンタオブジェクトで使用できますが、カウンタでの役割は異なります.
c = Counter(a=4, b=2, c=0, d=-2)
d = Counter(a=1, b=2, c=3, d=4)
c.subtract(d)
print(c)
> Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})
*この方法はCounterオブジェクトでは実施されていません.
*要素は、イテレーションでカウントするか、他のマッピング(またはカウンタ)で追加できます.dict.update()と似ていますが、置換することが多いです.また、このかわいい子は、(キー、値)ペアのシーケンスではなく、要素のシーケンスであることも望んでいます.
sum(c.values()) # 모든 개수의 합
c.clear() # 모든 개수를 재설정합니다
list(c) # 고유한 요소들의 리스트
set(c) # 집합으로 변환합니다
dict(c) # 일반 딕셔너리로 변환합니다
c.items() # (elem, cnt) 쌍의 목록으로 변환합니다
Counter(dict(list_of_pairs)) # (elem, cnt) 쌍의 리스트를 변환합니다
c.most_common()[:-n-1:-1] # 가장 드문 n 개의 요소
+c # 0과 음의 개수를 제거합니다
c = Counter(a=3, b=1)
d = Counter(a=1, b=2)
c + d # 두 계수기 합: c[x] + d[x]
Counter({'a': 4, 'b': 3})
c - d
Counter({'a': 2})
c & d # 교집합: min(c[x], d[x])
Counter({'a': 1, 'b': 1})
c | d # 합집합: max(c[x], d[x])
Counter({'a': 3, 'b': 2})
c = Counter(a=2, b=-4)
+c
Counter({'a': 2})
-c
Counter({'b': 4})
Reference
この問題について(Python collections.counter), 我々は、より多くの情報をここで見つけました https://velog.io/@nodemon/Python-collections.counterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol