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

Python – 리스트에서 연속된 동일 요소 개수 구하기

리스트에서 연속적으로 반복되는 동일한 요소의 개수를 구해야 하는 경우, 반복문과 append 메서드, 그리고 set 메서드를 활용하면 간단하게 해결할 수 있습니다.

예제 코드

아래는 실제 동작을 보여주는 예제입니다.

my_list = [24, 24, 24, 15, 15, 64, 64, 71, 13, 95, 100]

print("The list is :")
print(my_list)

my_result = []
for index in range(0, len(my_list) - 1):

   if my_list[index] == my_list[index + 1]:
      my_result.append(my_list[index])

my_result = len(list(set(my_result)))

print("The result is :")
print(my_result)

실행 결과

The list is :
[24, 24, 24, 15, 15, 64, 64, 71, 13, 95, 100]
The result is :
3

코드 설명

  • 먼저 정수들이 담긴 리스트를 정의하고, 콘솔에 출력하여 확인합니다.

  • 결과를 저장하기 위한 빈 리스트를 하나 생성합니다.

  • 리스트를 순회하면서 현재 인덱스의 요소와 바로 다음 인덱스의 요소가 서로 같은지 비교합니다. 두 값이 일치하면 해당 요소를 빈 리스트에 추가(append)합니다.

  • 중복 제거를 위해 결과 리스트를 set으로 변환한 뒤 다시 list로 변환하고, 그 길이를 변수에 할당합니다. 이렇게 하면 연속으로 나타난 고유한 값만 남게 됩니다.

  • 최종 결과 값이 콘솔에 출력됩니다.

추가 팁

위 방식은 이웃한 두 요소를 비교하는 단순한 접근법입니다. 만약 각 연속 그룹의 길이 자체가 궁금하다면 itertools.groupby를 사용하는 것도 좋은 대안입니다. groupby는 인접한 동일 요소들을 자동으로 묶어주기 때문에, 각 그룹의 키 값과 길이를 손쉽게 얻을 수 있습니다.