2014-06-21 2 views
0

내 목표는 먼저 아래 사전에서 처음 3 항목을 선택하는 것입니다. 값이 1보다 큰 항목을 선택하고 싶습니다.Python을 사용하여 사전에서 항목 선택

dic=Counter({'school': 4, 'boy': 3, 'old': 3, 'the': 1}) 

My attempt: 
1.>>> {x:x for x in dic if x[1]>1} 
{'boy': 'boy', 'the': 'the', 'old': 'old', 'school': 'school'} 


2.>>>dic[:3] 
TypeError: unhashable type 

Desired output: Counter({'school': 4, 'boy': 3, 'old': 3}) 

의견을 보내 주셔서 감사합니다. 세 most common 항목의

>>> [x for x in dic if dic[x] > 1] 
['boy', 'school', 'old'] 

: 1보다 큰 수와 항목의

+0

사전에는 "첫 번째 x 값"이 없으며 순서가 지정되지 않습니다. 카운터에서 세 가지 'most_common'값을 의미 했습니까? –

+0

예, 세 가지가 가장 많이 있습니다. 감사. – user2274879

답변

1

>>> [x for x, freq in dic.most_common(3)] 
['school', 'boy', 'old'] 

얻을하려면 사전 :

>>> {x: freq for x,freq in dic.items() if freq > 1} 
{'boy': 3, 'school': 4, 'old': 3} 
>>> {x: freq for x,freq in dic.most_common(3)} 
{'boy': 3, 'school': 4, 'old': 3} 

참고 : 사람들은 보통 사전이다. Counter(result)을 사용하여 Counter 초로 되돌립니다. 사전에 대한 이해와 달리 내장형 dict 함수를 사용하여 튜플 목록을 사전으로 변환 한 다음 Counter을 그 것으로부터 만들 수 있습니다.

>>> Counter(dict(dic.most_common(3))) 
Counter({'school': 4, 'boy': 3, 'old': 3}) 
+0

어쩌면 당신은 저를 데려 오지 않았거나 제 질문을 명확하게 설명하지 않았을 것입니다. 내 대답은 사전 형식으로 키와 값을 포함하고 싶습니다. – user2274879

+0

사전 형식이 정확하지는 않습니다. : >>> dic.most_common (3) [('school', 4), ('boy', 3), ('old', 3)] ' – user2274879

+0

해결책을 찾아 주셔서 너무 감사드립니다. 그것은 효과가 있었다. – user2274879

관련 문제