파이썬에서의 집합(Set) 이해
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 초보 파이썬 학습자
- 데이터 구조 및 집합 연산에 관심 있는 개발자
- 난이도: 기초 수준 (데이터 타입과 연산 기초 지식 필요)
핵심 요약
- 집합(Set)은 중복 요소를 자동으로 제거하는 데이터 구조입니다.
add()
,difference()
,union()
,intersection()
등의 메서드로 집합 연산을 수행할 수 있습니다.|
,&
연산자로 간단히 합집합/교집합을 구할 수 있으며, 순서가 보장되지 않아 인덱스 접근이 불가능합니다.
섹션별 세부 요약
1. 집합의 기본 특성
- 중복 요소 제거:
{"jim", "michael", "michael", "jan"}
→{'jim', 'michael', 'jan'}
- 추가 방법:
group_1.add("pam")
- 리스트로 변환:
list({"jim", "michael", "jan"})
→ 순서가 무작위로 변경됨
2. 집합 연산 메서드
- 차집합:
group_1.difference(group_2)
→{'michael', 'pam', 'jan'}
- 합집합:
group_1.union(group_2)
또는group_1 | group_2
→{'jim', 'pam', 'jan', 'ryan', 'kelly', 'michael'}
- 교집합:
group_1.intersection(group_2)
또는group_1 & group_2
→{'jim'}
3. 집합의 한계와 대응 방안
- 순서 무시:
print(group_1)
→ 요소 순서가 정해지지 않음 (해시 테이블 기반 저장 방식 때문) - 인덱스 접근 불가:
group_1[0]
→ 오류 발생 - 리스트 변환으로 대체:
list(group_1)
→ 순서를 임의로 정렬하여 사용 가능
결론
- 중복 제거 및 집합 연산이 필요한 경우 Set을 활용하세요.
|
,&
연산자로 간단한 연산이 가능하지만, 순서 무시 특성에 주의해야 합니다.- 리스트로 변환하여 순서를 임의로 정렬해야 하는 경우
list()
함수 사용 권장.