리스트에서 연속적으로 반복되는 동일한 요소의 개수를 구해야 하는 경우, 반복문과 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는 인접한 동일 요소들을 자동으로 묶어주기 때문에, 각 그룹의 키 값과 길이를 손쉽게 얻을 수 있습니다.