2016-08-26 1 views
0

모음 내부에서 각 문자열 (고유하지 않을 수도 있음)을 집계하기 위해 모음 카운터를 사용하고 있습니다. 문제는 이제 사전에 액세스 할 수 없으며 그 이유를 모르겠습니다.collections counter 파이썬에서 키에 액세스 할 수 없습니다.

내 코드입니다 : 나는 결과 1을 인쇄하는 경우, 출력은, 예를 들면

from collections import Counter 
result1 = Counter(list_final1) #to count strings inside list 

:

Counter({'BAM': 44, 'CCC': 20, 'APG': 14, 'MBI': 11, 'BAV': 10}) 

내가 카운터를 사용하는 기대 exampke의 번호 (44)에 액세스하려면 [ 'BAM']

print (Counter['BAM']) 
TypeError: 'type' object is not subscriptable 
:

는하지만 위의 나던 작업과 나는 오류

내가 뭘 잘못하고 있니? 고마워.

+0

try 'result1 ['BAM ']' – muddyfish

답변

2

귀하의 keyCounter 값을 저장 한 변수를 사용하십시오 (result1). 샘플 :

>>> from collections import Counter 
>>> my_dict = {'BAM': 44, 'CCC': 20, 'APG': 14, 'MBI': 11, 'BAV': 10} 
>>> result = Counter(my_dict) 
>>> result['BAM'] 
44 

Explaination : 당신은 Counter['BAM']을하고

, 잘못된 PARAM, 같은 'BAM'와 즉 만드는 새 Counter 객체입니다. 대신 Counter(my_dict)['BAM']을 수행하는 경우 사용자의 dict이 전달되는 것과 동일한 개체이므로 'BAM' 키에 액세스합니다.

+0

humm ,, 작동합니다! 그러나 나는 이해하지 못했다. 그것은 수집 장에 의해 만들어진이 사전이 다른 어떤 사전과 같지 않다는 것을 의미한다. 제발 좀 더 자세히 설명해 주시겠습니까? – Gonzalo

+0

동일합니다. 그러나 당신은'Counter [ 'BAM']'을하고 있습니다. 즉,'BAM '을 매개 변수로하는 새로운'Counter' 객체를 무효화하는 것입니다. 대신에'Counter (my_dict) [ 'BAM']'을 실행하면, 당신의 dict이 전달되는 것과 같은 객체이기 때문에 또한 작동 할 것이고, 그 안에서'BAM' 키에 접근하고 있습니다. –

+0

. 고맙습니다. – Gonzalo

관련 문제