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

Python 람다(Lambda) 표현식과 reduce 함수로 홀수 번 등장하는 요소 찾기

이 글에서는 주어진 리스트에서 홀수 번 등장하는 숫자를 찾는 방법을 알아봅니다. 여기서는 Python의 lambda 표현식과 reduce 함수를 반드시 활용해야 합니다.

reduce 함수에 람다 표현식을 적용해 리스트의 모든 요소를 누적 처리하면, 짝수 번 등장한 요소는 서로 상쇄되고 홀수 번 등장한 요소만 최종적으로 남게 됩니다.

XOR 연산의 원리

이 기법의 핵심은 배타적 논리합(XOR, ^) 연산입니다. XOR은 같은 값을 두 번 연산하면 0이 되고, 어떤 값과 0을 XOR하면 그 값 자신이 됩니다. 따라서 짝수 번 등장한 요소는 모두 0으로 상쇄되며, 홀수 번 등장한 요소만 결과로 남습니다.

예제 코드

from functools import reduce

def oddcount(i):
    print(reduce(lambda x, y: x ^ y, i))

listA = [12, 34, 12, 12, 34]
print("Given list:\n", listA)
print("The element present odd number of times:")
oddcount(listA)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given list:
[12, 34, 12, 12, 34]
The element present odd number of times:
12

리스트 [12, 34, 12, 12, 34]에서 12는 세 번, 34는 두 번 등장합니다. 따라서 홀수 번 등장하는 유일한 요소인 12가 최종 결과로 출력됩니다. 이처럼 람다 표현식과 reduce 함수를 조합하면 별도의 반복문 없이 간결하게 문제를 해결할 수 있습니다.