[PYTHON] Python 2.7 주어진 값으로 사전 항목 수를 센다.
PYTHONPython 2.7 주어진 값으로 사전 항목 수를 센다.
첫 번째 질문은 여기에 있습니다.
파이썬 2.7 사용
항목의 사전을 가지고 있고, 키는 x, y 좌표를 튜플 (x, y)로 표현한 것이며 모든 값은 부울 값입니다.
얼마나 많은 항목에 주어진 값이 있는지 계산하는 빠르고 깨끗한 방법을 찾으려고합니다. 어떤 키가 주어진 값을 가지고 있는지 알 필요가 없습니다.
유사한 게시물이 있습니다. 사전에 얼마나 많은 항목이 파이썬에서 같은 값을 공유하지만, 정수 만 반환되는 사전은 필요 없습니다.
나의 첫 번째 생각은 아이템에 대해 반복하고 각각의 True 값이나 다른 것을 계산하면서 각각을 테스트하는 것입니다. 필자는 파이썬을 처음 접했을 때 모든 라이브러리를 알지 못하기 때문에이 작업을 더 빠르고 / 더 간단하게 수행 할 수 있을지 궁금합니다.
미리 감사드립니다.
해결법
-
==============================
1.이 첫 번째 부분은 주로 재미를위한 것입니다. 아마도 코드에서 사용하지 않을 것입니다.
이 첫 번째 부분은 주로 재미를위한 것입니다. 아마도 코드에서 사용하지 않을 것입니다.
sum(d.values())
True 값의 개수를 가져옵니다. 물론 false 값의 수는 len (d) - sum (d.values ())로 얻을 수 있습니다.
약간 더 일반적으로 다음과 같이 할 수 있습니다.
sum(1 for x in d.values() if some_condition(x))
이 경우, x가 some_condition (x) 대신에 잘 작동하고 대부분의 사람들이 실제 코드에서 사용하는 경우)
내가 여기에 올린 세 가지 해결책 중에서, 위의 내용은 가장 명료하며 제가 권하고 싶은 것 중 하나입니다.
마지막으로, 나는 이것이 좀 더 영리하게 쓰여질 수 있다고 생각한다.
sum( x == chosen_value for x in d.values() )
이것은 True + True == 2라는 사실에 의존하기 때문에 처음 (재미있는) 해결책과 똑같은 맥락입니다. 영리한 것이 항상 더 좋은 것은 아닙니다. 나는 대부분의 사람들이이 버전을 위의 것보다 조금 더 모호한 것으로 생각할 것이라고 생각한다.
-
==============================
2.카운트를 확인하기 위해 신속하게 액세스 할 수있는 데이터 구조가 필요하면 카운터를 사용해볼 수 있습니다 (@ mgilson이 지적했듯이 해시 가능 값 자체에 의존).
카운트를 확인하기 위해 신속하게 액세스 할 수있는 데이터 구조가 필요하면 카운터를 사용해볼 수 있습니다 (@ mgilson이 지적했듯이 해시 가능 값 자체에 의존).
>>> from collections import Counter >>> d = {(1, 2): 2, (3, 1): 2, (4, 4): 1, (5, 6): 4} >>> Counter(d.values()) Counter({2: 2, 1: 1, 4: 1})
그런 다음 값을 입력하고 나타난 횟수를 얻을 수 있습니다.
>>> c = Counter(d.values()) >>> c[2] 2 >>> c[4] 1
from https://stackoverflow.com/questions/13462365/python-2-7-counting-number-of-dictionary-items-with-given-value by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 모델 양식 추가 필드 (Django)에 위젯 지정 (0) | 2018.11.22 |
---|---|
[PYTHON] BeautifulSoup 객체에 새 태그를 삽입하려면 어떻게해야합니까? (0) | 2018.11.22 |
[PYTHON] 파이썬에서 for 루프의 [] 괄호는 무엇을 의미합니까? (0) | 2018.11.22 |
[PYTHON] 1 억 개의 0을 가진 효율적인 파이썬 배열? (0) | 2018.11.22 |
[PYTHON] 파이썬 argparse - 선택적 인수이거나 아니면 둘 다 아니다. (0) | 2018.11.22 |