본문 바로가기
파이썬

파이썬 리스트, 딕셔너리, 튜플, 세트

by demianpark127 2024. 11. 30.
SMALL

Python의 set 요약

**set(집합)**은 파이썬에서 **고유한 값(중복 제거)**을 저장하고 다양한 집합 연산을 제공하는 자료형입니다.


특징

  1. 중복 제거:
    • set은 자동으로 중복된 값을 제거합니다.
    • 예: set([1, 1, 1, 2, 2, 3]) -> {1, 2, 3}
  2. 키(key)의 특성:
    • dict와 동일하게 고유한 값만 저장 가능.
    • 값이 없고, 키만 저장하는 구조.
  3. 문자열 처리:
    • 문자열도 set으로 변환하여 중복 문자 제거 가능.
    • 예: set("aaabbcccabcde") -> {'a', 'b', 'c', 'd', 'e'}
  4. 집합 연산 제공:
    • 합집합: | 또는 union() 사용.
    • 교집합: & 또는 intersection() 사용.
    • 차집합: - 또는 difference() 사용.

주요 메서드

  1. add(): 단일 원소 추가
  2. python
    코드 복사
    st = {1, 2} st.add(3) # {1, 2, 3}
  3. update(): 여러 원소 추가
  4. python
    코드 복사
    st.update([4, 5]) # {1, 2, 3, 4, 5}
  5. remove(): 특정 원소 제거 (없으면 에러 발생)
  6. python
    코드 복사
    st.remove(3) # {1, 2, 4, 5}
  7. discard(): 특정 원소 제거 (없어도 에러 없음)
  8. python
    코드 복사
    st.discard(6) # 에러 없이 넘어감
  9. clear(): 비어있는 set로 초기화
  10. python
    코드 복사
    st.clear() # set()
  11. 형 변환:
    • list(), tuple() 등을 사용하여 다른 자료형으로 변환 가능.
    python
    코드 복사
    st = {1, 2, 3} print(list(st)) # [1, 2, 3] print(tuple(st)) # (1, 2, 3)

활용 예시

  1. 중복 제거:
  2. python
    코드 복사
    data = [1, 2, 2, 3, 3, 3] unique_data = set(data) # {1, 2, 3}
  3. 문자열 중복 문자 제거:
  4. python
    코드 복사
    text = "aaabbcccabcde" unique_chars = set(text) # {'a', 'b', 'c', 'd', 'e'}
  5. 집합 연산:
  6. 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)

사용 사례

  1. 리스트: 순서가 중요하고, 데이터의 추가/삭제가 필요한 경우.
  2. 딕셔너리: 데이터가 키-값 구조로 관리되어야 할 때.
  3. 튜플: 변경되지 않아야 하는 데이터(좌표, 설정 값 등).
  4. 세트: 데이터의 중복 제거, 집합 연산(교집합, 합집합 등)이 필요한 경우.
LIST