본문 바로가기
Programing/Python

Python Set Comprehension 사용하기

by 멍멍돌이야 2023. 3. 13.
반응형

이 자습서에서는 Python 집합 이해를 사용하여 기존 집합을 기반으로 새 집합을 만드는 방법을 배웁니다.

 

1. Python Set comprehension 소개

3개의 태그로 구성된 다음 세트가 있다고 가정합니다.

tags = {'Django', 'Pandas', 'Numpy'}

세트의 태그를 소문자로 된 다른 태그 세트로 변환하려면 다음 for 루프를 사용할 수 있습니다.

tags = {'Django', 'Pandas', 'Numpy'}

lowercase_tags = set()
for tag in tags:
    lowercase_tags.add(tag.lower())

print(lowercase_tags)

Output:

{'django', 'numpy', 'pandas'}

작동 방식:

  • 먼저 태그 세트의 각 요소를 반복합니다.
  • 둘째, 각 태그를 소문자로 변환하고 새 세트(lowercase_tags)에 추가합니다.

또는 기본 제공 map() 함수를 람다 식과 함께 사용할 수 있습니다.

tags = {'Django', 'Pandas', 'Numpy'}
lowercase_tags = set(map(lambda tag: tag.lower(), tags))

print(lowercase_tags)

map() 함수는 지도 객체를 반환하므로 set() 함수를 사용하여 집합으로 변환해야 합니다.

 

코드를 더 간결하게 만들기 위해 Python은 다음과 같이 집합 이해 구문을 제공합니다.

{expression for element in set if condition}

집합 내포를 사용하면 기존 집합을 기반으로 새 집합을 만들 수 있습니다.

집합 이해는 다음 단계를 수행합니다.

 

  • 먼저 집합의 요소를 반복합니다.
  • 둘째, 각 요소에 표현식을 적용합니다.
  • 셋째, 식으로 인해 새로운 요소 집합을 만듭니다.

또한 set comprehension을 사용하면 if 절의 조건을 통해 표현식을 적용할 요소를 선택할 수 있습니다.

집합 내포는 새로운 집합을 반환하며 원래 집합을 수정하지 않습니다.

이전 예제로 돌아가서 다음 집합 이해를 사용하여 태그 집합의 모든 태그를 변환할 수 있습니다.

tags = {'Django', 'Pandas', 'Numpy'}
lowercase_tags = {tag.lower() for tag in tags}

print(lowercase_tags)

이 구문은 확실히 for 루프보다 더 간결하고 map() 함수보다 더 우아해 보입니다.

 

2. Set comprehension 예제

Numpy를 제외하고 태그 세트의 모든 요소를 소문자로 변환하고 싶다고 가정합니다.

이를 위해 다음과 같이 집합 내포에 조건을 추가할 수 있습니다.

tags = {'Django', 'Pandas', 'Numpy'}
new_tags = {tag.lower() for tag in tags if tag != 'Numpy'}

print(new_tags)

Output:

{'django', 'pandas'}

 

3. Summary

Python 집합 이해를 사용하여 기존 집합의 각 요소에 식을 적용하여 기존 집합을 기반으로 새 집합을 만듭니다.

 

 

refreance: https://www.pythontutorial.net/python-basics/python-set-comprehension/
728x90
반응형

댓글