Python에서 중첩된 리스트(리스트의 리스트)를 집합(set)의 리스트로 변환해야 하는 경우가 있습니다. 예를 들어 각 내부 리스트에서 중복 요소를 제거하고 싶을 때 유용합니다. 이때 map, set, list 함수를 함께 사용하면 간단하게 해결할 수 있습니다.
예제 코드
아래는 리스트의 리스트를 집합의 리스트로 변환하는 방법을 보여주는 예제입니다.
my_list = [[2, 2, 2, 2], [1, 2, 1], [1, 2, 3], [1,1], [0]]
print("변환 전 리스트:")
print(my_list)
my_result = list(map(set, my_list))
print("변환 후 결과 리스트:")
print(my_result)실행 결과
변환 전 리스트: [[2, 2, 2, 2], [1, 2, 1], [1, 2, 3], [1, 1], [0]] 변환 후 결과 리스트: [set([2]), set([1, 2]), set([1, 2, 3]), set([1]), set([0])]
코드 설명
먼저 리스트의 리스트를 정의하고 콘솔에 출력하여 원본 데이터를 확인합니다.
map(set, my_list)구문은set함수를 내부 리스트의 각 요소에 차례대로 적용하여, 각 리스트를 집합으로 변환합니다.map객체는 이터러블이므로list()함수를 사용해 다시 리스트 형태로 변환합니다.최종 결과는 변수
my_result에 할당됩니다.변환된 결과가 콘솔에 출력되며, 각 집합에서 중복된 요소가 자동으로 제거된 것을 확인할 수 있습니다.
참고 사항
set은 순서를 보장하지 않으므로, 변환 결과에서 요소의 출력 순서는 실행 환경에 따라 달라질 수 있습니다. 또한 동일한 작업은 리스트 컴프리헨션을 사용해 [set(sub) for sub in my_list]와 같이 작성할 수도 있으며, 이 방식 역시 가독성이 좋아 널리 사용됩니다.