파이썬에서 집합(Set)에 포함된 요소들을 리스트로부터 추출해야 하는 경우, 간단한 for 반복문과 기본 조건문을 활용하면 손쉽게 해결할 수 있습니다.
예제 코드
아래는 실제 구현 예시입니다.
my_list = [5, 7, 2, 7, 2, 4, 9, 8, 8]
print("리스트 출력 :")
print(my_list)
search_set = {6, 2, 8}
my_result = []
for element in my_list:
if element in search_set:
my_result.append(element)
print("결과 출력 :")
print(my_result)실행 결과
리스트 출력 : [5, 7, 2, 7, 2, 4, 9, 8, 8] 결과 출력 : [2, 2, 8, 8]
코드 설명
먼저 하나의 리스트를 정의하고 콘솔에 출력합니다.
검색 대상이 되는 특정 요소들을 담은 집합(Set)을 별도로 정의합니다.
추출된 결과를 저장할 빈 리스트를 생성합니다.
for반복문을 사용해 리스트의 각 요소를 순회하면서, 해당 요소가 집합에 존재하는지 확인합니다.집합에 존재하는 요소라면 빈 리스트에 추가(
append)합니다.최종적으로 필터링된 결과 리스트가 콘솔에 출력됩니다.
참고: 더 파이썬다운 방법
위 코드는 다음과 같이 리스트 컴프리헨션(List Comprehension)을 사용하면 한 줄로 간결하게 표현할 수 있습니다.
my_result = [element for element in my_list if element in search_set]
또한 집합(Set)은 내부적으로 해시 테이블을 사용하기 때문에 멤버십 검사(in 연산)의 시간 복잡도가 O(1)입니다. 따라서 리스트 대신 집합으로 검색 조건을 정의하면 대용량 데이터에서도 매우 빠른 성능을 기대할 수 있습니다.