SMALL
Python의 set 요약
**set(집합)**은 파이썬에서 **고유한 값(중복 제거)**을 저장하고 다양한 집합 연산을 제공하는 자료형입니다.
특징
- 중복 제거:
- set은 자동으로 중복된 값을 제거합니다.
- 예: set([1, 1, 1, 2, 2, 3]) -> {1, 2, 3}
- 키(key)의 특성:
- dict와 동일하게 고유한 값만 저장 가능.
- 값이 없고, 키만 저장하는 구조.
- 문자열 처리:
- 문자열도 set으로 변환하여 중복 문자 제거 가능.
- 예: set("aaabbcccabcde") -> {'a', 'b', 'c', 'd', 'e'}
- 집합 연산 제공:
- 합집합: | 또는 union() 사용.
- 교집합: & 또는 intersection() 사용.
- 차집합: - 또는 difference() 사용.
주요 메서드
- add(): 단일 원소 추가
-
python코드 복사st = {1, 2} st.add(3) # {1, 2, 3}
- update(): 여러 원소 추가
-
python코드 복사st.update([4, 5]) # {1, 2, 3, 4, 5}
- remove(): 특정 원소 제거 (없으면 에러 발생)
-
python코드 복사st.remove(3) # {1, 2, 4, 5}
- discard(): 특정 원소 제거 (없어도 에러 없음)
-
python코드 복사st.discard(6) # 에러 없이 넘어감
- clear(): 비어있는 set로 초기화
-
python코드 복사st.clear() # set()
- 형 변환:
- list(), tuple() 등을 사용하여 다른 자료형으로 변환 가능.
python코드 복사st = {1, 2, 3} print(list(st)) # [1, 2, 3] print(tuple(st)) # (1, 2, 3)
활용 예시
- 중복 제거:
-
python코드 복사data = [1, 2, 2, 3, 3, 3] unique_data = set(data) # {1, 2, 3}
- 문자열 중복 문자 제거:
-
python코드 복사text = "aaabbcccabcde" unique_chars = set(text) # {'a', 'b', 'c', 'd', 'e'}
- 집합 연산:
-
python코드 복사A = {1, 2, 3} B = {2, 3, 4} print(A | B) # 합집합: {1, 2, 3, 4} print(A & B) # 교집합: {2, 3} print(A - B) # 차집합: {1}
set은 데이터의 고유값을 관리하거나, 집합 연산을 수행할 때 매우 유용한 자료형입니다!
파이썬에서 set(집합), 리스트, 딕셔너리, 튜플은 가장 기본적이고 중요한 자료구조입니다. 각 자료구조의 특징, 차이점, 그리고 사용 예제를 설명합니다.
1. 리스트 (List)
정의:
리스트는 순서가 있는 변경 가능한(mutable) 데이터 구조로, 여러 데이터를 하나로 묶어 관리할 수 있습니다.
특징:
- 순서 유지: 요소가 삽입된 순서를 유지하며, 인덱스를 통해 요소에 접근.
- 변경 가능: 요소를 추가, 삭제, 수정 가능.
- 중복 허용: 동일한 값을 여러 번 저장 가능.
생성 방법:
python
코드 복사
my_list = [1, 2, 3, 4, 5]
주요 메서드:
- append(): 요소 추가
- remove(): 특정 요소 제거
- pop(): 마지막 요소 제거 및 반환
- sort(): 정렬
- reverse(): 역순 정렬
예제:
python
코드 복사
my_list = [1, 2, 3] my_list.append(4) # [1, 2, 3, 4] my_list.remove(2) # [1, 3, 4]
2. 딕셔너리 (Dictionary)
정의:
딕셔너리는 **키-값 쌍(Key-Value Pair)**으로 데이터를 저장하는 변경 가능한(mutable) 자료구조입니다.
특징:
- 순서 유지: 파이썬 3.7부터 삽입 순서 유지.
- 변경 가능: 값 추가, 삭제, 수정 가능.
- 키는 고유(unique): 동일한 키는 중복 불가, 값은 중복 가능.
생성 방법:
python
코드 복사
my_dict = {"name": "Alice", "age": 25}
주요 메서드:
- keys(): 모든 키 반환
- values(): 모든 값 반환
- items(): 키-값 쌍 반환
- get(): 키로 값 가져오기
- update(): 딕셔너리 병합
예제:
python
코드 복사
my_dict = {"name": "Alice", "age": 25} my_dict["city"] = "Seoul" # {"name": "Alice", "age": 25, "city": "Seoul"}
3. 튜플 (Tuple)
정의:
튜플은 순서가 있는 **변경 불가능(immutable)**한 데이터 구조입니다.
특징:
- 순서 유지: 리스트와 동일하게 삽입 순서를 유지.
- 변경 불가능: 요소를 추가, 삭제, 수정 불가.
- 중복 허용: 동일한 값을 여러 번 저장 가능.
생성 방법:
python
코드 복사
my_tuple = (1, 2, 3)
활용:
- 함수에서 다중 값 반환
- 변경되지 않는 데이터 저장
- 딕셔너리의 키로 사용 가능
예제:
python
코드 복사
coordinates = (37.5665, 126.9780) print(coordinates[0]) # 37.5665
4. 세트 (Set)
정의:
세트는 순서가 없는(unsorted) 데이터 구조로, 중복을 허용하지 않는 고유한 값들의 집합입니다.
특징:
- 중복 제거: 고유한 값만 저장.
- 순서 없음: 요소의 순서가 유지되지 않음.
- 변경 가능: 요소 추가, 삭제 가능.
생성 방법:
python
코드 복사
my_set = {1, 2, 3, 3} # {1, 2, 3}
주요 메서드:
- add(): 요소 추가
- remove(): 요소 제거
- union(): 합집합
- intersection(): 교집합
- difference(): 차집합
예제:
python
코드 복사
set1 = {1, 2, 3} set2 = {3, 4, 5} print(set1 | set2) # 합집합: {1, 2, 3, 4, 5} print(set1 & set2) # 교집합: {3}
자료구조 비교
특징리스트 (List)딕셔너리 (Dict)튜플 (Tuple)세트 (Set)
순서 유지 | O | O | O | X |
변경 가능성 | O | O | X | O |
중복 허용 | O | 키는 X, 값은 O | O | X |
데이터 접근 방식 | 인덱스 | 키(Key) | 인덱스 | 값(Value) |
사용 사례
- 리스트: 순서가 중요하고, 데이터의 추가/삭제가 필요한 경우.
- 딕셔너리: 데이터가 키-값 구조로 관리되어야 할 때.
- 튜플: 변경되지 않아야 하는 데이터(좌표, 설정 값 등).
- 세트: 데이터의 중복 제거, 집합 연산(교집합, 합집합 등)이 필요한 경우.
LIST
'파이썬' 카테고리의 다른 글
파이썬 함수 문제 5개 (1) | 2024.12.01 |
---|---|
GPT 파이썬 배우기 1화 파이썬 기초, 게임, 추천 서적, 유튜브 (13) | 2024.10.22 |