[Python] 파이썬 배열 원소 세는 방법 count() / collections.Counter()

2020. 12. 27. 11:03·Language/Python
반응형

TITLE

👀 배열 원소 수 세는 방법 ( count() / collections.Counter() ) 👀
1.list.count(x) : 배열 내 주어진 원소 x의 갯수를 셉니다. x가 포함된 원소가 아닌, x 자체만 셈. 문자열 가능
2.collections.Counter(배열, 문자열)  : 배열, 문자열 내 모든 원소의 갯수 셈. x가 포함된 원소가 아닌, x 자체만 셈. 딕셔너리도 가능. 

파이썬에서 배열 내원소의 갯수를 세는 방법으로는 다음과 같이 2개의 방법이 존재합니다.

collections 모듈의 Counter() 클래스와, 리스트 자체의 count() 함수가 있습니다.

 

1. count() -> list.count(x)

  • 배열 내에서 어떤 원소 x가 등장하는 횟수를 반환함.
  • x가 포함된 원소가 아닌 x 본연의 원소의 숫자만을 셈.
array = ['a', 'b', 'c', 'ae', 'ba', 'dab']
cnt = array.count('a')
print('배열 내 a의 등장 횟수 :', cnt)
# > 배열 a의 등장 횟수 : 1

 

  • 문자열(String)에도 적용 가능. 
string = 'abacaca'
cnt = string.count('a')
print('문자열 내 a의 등장 횟수 :', cnt)
# > 문자열 a의 등장 횟수 : 4

 

2. collections.Counter() -> counter = Counter(변수)

  • count와 마찬가지로 배열, 문자열, 둘다 사용 가능
  • 어떤 값 x 하나가 아닌 내 모든 단일 값의 갯수를 세어줌.
from collections import Counter

cnt = Counter(['a', 'b', 'c', 'ae', 'ba', 'dab'])
print('배열 내 각 원소를 세는 카운터 :', cnt)
# > 배열 내 각 원소의 갯수 : Counter({'a': 1, 'b': 1, 'c': 1, 'ae': 1, 'ba': 1, 'dab': 1})

cnt = Counter('Abracadabra!')
print('문자열 내 각 원소를 세는 카운터 :', cnt)
# 문자열 내 각 원소를 세는 카운터 : Counter({'a': 4, 'b': 2, 'r': 2, 'A': 1, 'c': 1, 'd': 1, '!': 1})

 

  • 원소별 접근 방법: cnt['x']
cnt = Counter('Abracadabra!')
print('a 의 갯수는 :', cnt['a'])
# > a 의 갯수는 : 4

 

  • 최다 빈도 원소 내림차순으로 n개 확인 가능: most_common(n)
cnt = Counter('Abracadabra!')
print('가장 많이 있는 원소 차례대로 3개 뽑기 :', cnt.most_common(3))
# > 가장 많이 있는 원소 차례대로 3개 뽑기 : [('a', 4), ('b', 2), ('r', 2)]
print('가장 빈도수가 높은 원소는?! :', cnt.most_common(1))
# > 가장 빈도수가 높은 원소는?! : [('a', 4)]

 

  • dictionary에도 사용가능.
cnt = Counter({'hi': 3, 'im': 4, 'dev': 9, 'fennec': 101})
print('문자열 내 각 원소를 세는 카운터 :', cnt)
# > 문자열 내 각 원소를 세는 카운터 : Counter({'fennec': 101, 'dev': 9, 'im': 4, 'hi': 3})

 


count() 함수는 배열에 대해 특정 원소의 갯수만을 추출할 때 사용한다고 보면 되고, collections.Counter()는 모든 원소의 갯수를 셀 때 도움이 됩니다. 목적에 따라 다르게 사용하면 될 것 같습니다.😊 (다만 collections.Counter()는 더욱 다양한 함수들이 있으니, 잘 확인하고 사용하면 많은 도움이 될 것 같습니다.)

 

 

 

 

 

<참고>

docs.python.org/ko/3/library/array.html?highlight=count#array.array.count

docs.python.org/ko/3/library/collections.html?highlight=collections#collections.Counter

 

반응형

'Language > Python' 카테고리의 다른 글

[Python] upper(), lower() 함수 / 파이썬 문자열 대문자 소문자 변환  (0) 2021.01.12
[Python] islower(), isupper() 함수 / 파이썬 문자열 대문자 소문자 체크  (0) 2021.01.12
[Python] isalpha(), isdigit() 함수 / 문자열 체크하기  (0) 2021.01.12
[Python] 리스트/배열 역순 정렬 ( reverse() / reversed() )  (0) 2020.12.24
[Python] 리스트/배열 정렬 함수 ( sort() / sorted() )  (0) 2020.12.24
'Language/Python' 카테고리의 다른 글
  • [Python] islower(), isupper() 함수 / 파이썬 문자열 대문자 소문자 체크
  • [Python] isalpha(), isdigit() 함수 / 문자열 체크하기
  • [Python] 리스트/배열 역순 정렬 ( reverse() / reversed() )
  • [Python] 리스트/배열 정렬 함수 ( sort() / sorted() )
개발하는 사막여우
개발하는 사막여우
개발개발 주저리주저리
    반응형
  • 개발하는 사막여우
    개발하는 사막여우
    개발하는 사막여우
  • 전체
    오늘
    어제
    • All (311)
      • Books (13)
        • 읽기 좋은 코드가 좋은 코드다 (13)
      • Study (6)
        • Blockchain (3)
        • Algorithm (3)
      • Baekjoon (36)
      • Programmers (166)
      • LeetCode (15)
      • Open Source (1)
        • Youtube Popout Player (1)
      • Language (32)
        • Python (9)
        • JS (8)
        • Java (5)
        • HTML (6)
        • CSS (4)
      • Library & Framework (15)
        • React.js (15)
      • IDE (2)
        • IntelliJ (2)
      • Airdrop (9)
      • Tistory (2)
      • etc.. (7)
        • Cozubi (6)
        • lol-chess (0)
  • 블로그 메뉴

    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    카카오 코딩테스트
    클린 코드
    Cozubi
    알고리즘문제풀이
    프로그래머스
    코주비
    코딩테스트연습
    파이썬
    코인줍줍
    Python
    읽기 좋은 코드가 좋은 코드다
    신규 코인 에어드랍
    카카오 알고리즘 문제
    클린 코드 작성법
    백준
    programmers
    프로그래머스 위클리 챌린지
    2018 KAKAO BLIND RECRUITMENT
    Java
    카카오 공채
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발하는 사막여우
[Python] 파이썬 배열 원소 세는 방법 count() / collections.Counter()
상단으로

티스토리툴바