Python 세트: 연산, 방법 및 세트 이론
Python의 마스터 세트. 고유한 값을 저장하고, 교차점, 합집합, 차이점을 실행하고, 해싱의 성능 이점을 이해하는 방법을 알아보세요.
개요
세트는 Python에서 고유한 요소의 순서가 지정되지 않은 모음입니다. 세트는 해시 테이블을 기반으로 구축되므로 특정 요소가 컬렉션 내에 있는지 확인하는 멤버십 테스트에 고도로 최적화됩니다. 항목이 목록에 있는지 확인하려면 모든 항목을 검색해야 하지만(`O(N)` 작업), 집합의 구성원 확인은 `O(1)` 상수 시간에 실행됩니다. 이는 중복 제거 및 대량 데이터 필터링을 위한 세트를 매우 강력하게 만듭니다.
집합은 콜론 없이 값을 포함하는 중괄호 `{}`를 사용하거나 내장된 `set()` 생성자를 사용하여 초기화됩니다. 중괄호는 사전에도 사용되므로 빈 중괄호 `{}`를 작성하면 빈 사전이 초기화됩니다. 빈 세트를 초기화하려면 `set()`을 사용해야 합니다. 집합 내의 요소는 해시 가능하고 불변이어야 합니다. 즉, 숫자, 문자열 및 튜플을 저장할 수 있지만 목록이나 사전은 집합 내에 저장할 수 없습니다.
기본적인 추가 및 삭제 방법 외에도 Python 세트는 기본적으로 수학적 집합 이론의 작업을 지원합니다. 여기에는 컬렉션을 병합하기 위한 Union(`|` 또는 `.union()`), 공통 요소를 찾기 위한 Intersection(`&` 또는 `.intersection()`), 한 컬렉션에 고유한 요소를 찾기 위한 Difference(`-` 또는 `.difference()`), 두 세트 모두가 아닌 두 세트 중 하나의 항목을 검색하기 위한 Symmetric Difference(`^`)가 포함됩니다. 마스터링 세트를 사용하면 깨끗하고 성능이 뛰어나며 읽기 쉬운 코드로 복잡한 그룹화 문제를 해결할 수 있습니다.
코드 및 실행 출력
목록에서 중복 항목을 제거하고 수학적 집합 작업을 수행합니다.
# Removing duplicates
roles_list = ["admin", "user", "editor", "admin", "user"]
# Sort the set to guarantee deterministic printed output
unique_roles = sorted(list(set(roles_list)))
print(f"Unique roles: {unique_roles}")
# Set operations
dev_skills = {"python", "javascript", "sql"}
ops_skills = {"sql", "docker", "kubernetes"}
# Union and Intersection (sorted for deterministic output)
all_skills = sorted(list(dev_skills | ops_skills))
common_skills = sorted(list(dev_skills & ops_skills))
unique_to_dev = sorted(list(dev_skills - ops_skills))
print(f"Union: {all_skills}")
print(f"Intersection: {common_skills}")
print(f"Dev only: {unique_to_dev}")Unique roles: ['admin', 'editor', 'user']
Union: ['docker', 'javascript', 'kubernetes', 'python', 'sql']
Intersection: ['sql']
Dev only: ['javascript', 'python']단계별 구현
- API 결과 또는 CSV 파일에서 중복 항목 제거
- 두 데이터베이스 간의 공통 요소 결정
- 대규모 ID 목록에서 빠른 조회 작업 수행
자주 묻는 질문
세트의 요소는 순서가 지정되어 있나요?
아니요, 세트는 순서가 없습니다. 인덱스(예: set[0])로 요소에 액세스하거나 요소를 분할할 수 없습니다.
세트의 요소를 어떻게 추가하거나 제거하나요?
단일 요소를 삽입하려면 .add() 메서드를 사용하고, 요소를 제거하려면 .remove() 또는 .discard()를 사용하세요. .discard()는 요소가 누락되어도 오류를 발생시키지 않으므로 더 안전합니다.
관련 주제
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 목록을 정렬하는 방법(오름차순 및 내림차순)
sort() 메서드와 sorted() 함수를 사용하여 Python에서 목록을 정렬하는 방법을 알아보세요. 사용자 정의 키 정렬 및 역순 예시를 살펴보세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.