Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 리스트에서 특정 숫자의 등장 횟수 세는 방법

리스트 안에 특정 숫자가 몇 번 등장하는지(빈도) 확인해야 할 때가 종종 있습니다. 이럴 때는 리스트와 찾으려는 숫자를 매개변수로 받는 함수를 정의하고, 리스트를 한 요소씩 순회하면서 해당 숫자를 만날 때마다 카운터를 1씩 증가시키는 방식으로 손쉽게 해결할 수 있습니다.

아래에서 실제 동작 과정을 살펴보겠습니다.

예제 코드

def count_num(my_list, x_val):
    my_counter = 0
    for elem in my_list:
        if (elem == x_val):
            my_counter = my_counter + 1
    return my_counter

my_list = [66, 26, 48, 140, 66, 20, 1, 96, 86]
print("The list is :")
print(my_list)
occ_number = 66
print('{} has occurred {} times'.format(occ_number, count_num(my_list, occ_number)))

실행 결과

The list is :
[66, 26, 48, 140, 66, 20, 1, 96, 86]
66 has occurred 2 times

코드 설명

  • count_num이라는 이름의 함수를 정의하며, 리스트(my_list)와 찾으려는 숫자(x_val) 두 개의 매개변수를 받습니다.

  • for 문으로 리스트를 순회하면서, 각 요소가 찾는 숫자와 일치할 때마다 카운터(my_counter)를 1씩 증가시킵니다.

  • 순회가 끝나면 카운터 값을 함수의 결과로 반환합니다.

  • 함수 외부에서 예시 리스트를 정의하고 콘솔에 출력합니다.

  • 찾으려는 숫자(66)를 변수에 저장한 뒤, 리스트와 숫자를 인자로 전달하여 함수를 호출합니다.

  • format() 메서드를 활용해 "66 has occurred 2 times" 형태의 결과 문자열을 콘솔에 출력합니다.

더 간단한 방법: count() 메서드 활용하기

사실 파이썬 리스트에는 count() 메서드가 기본으로 내장되어 있어, 별도의 함수를 작성하지 않고도 한 줄로 동일한 결과를 얻을 수 있습니다.

my_list = [66, 26, 48, 140, 66, 20, 1, 96, 86]
print(my_list.count(66))  # 출력: 2

직접 함수를 구현하면 조건을 추가하거나 로직을 자유롭게 확장할 수 있다는 장점이 있고, count() 메서드를 사용하면 코드가 훨씬 간결해진다는 장점이 있습니다. 상황에 맞게 선택해서 사용하면 됩니다.