복붙노트

[PYTHON] Python 2.7 주어진 값으로 사전 항목 수를 센다.

PYTHON

Python 2.7 주어진 값으로 사전 항목 수를 센다.

첫 번째 질문은 여기에 있습니다.

파이썬 2.7 사용

항목의 사전을 가지고 있고, 키는 x, y 좌표를 튜플 (x, y)로 표현한 것이며 모든 값은 부울 값입니다.

얼마나 많은 항목에 주어진 값이 있는지 계산하는 빠르고 깨끗한 방법을 찾으려고합니다. 어떤 키가 주어진 값을 가지고 있는지 알 필요가 없습니다.

유사한 게시물이 있습니다. 사전에 얼마나 많은 항목이 파이썬에서 같은 값을 공유하지만, 정수 만 반환되는 사전은 필요 없습니다.

나의 첫 번째 생각은 아이템에 대해 반복하고 각각의 True 값이나 다른 것을 계산하면서 각각을 테스트하는 것입니다. 필자는 파이썬을 처음 접했을 때 모든 라이브러리를 알지 못하기 때문에이 작업을 더 빠르고 / 더 간단하게 수행 할 수 있을지 궁금합니다.

미리 감사드립니다.

해결법

  1. ==============================

    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. ==============================

    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
    
  3. from https://stackoverflow.com/questions/13462365/python-2-7-counting-number-of-dictionary-items-with-given-value by cc-by-sa and MIT license