FRONTMANFRONTMAN
  • 태그
  • 방명록
  • 글쓰기
  • 관리자
  • HOME
  • 태그
  • 방명록
Python 딕셔너리(Dictionary)와 집합(Set)
hahekaku
Python 딕셔너리(Dictionary)와 집합(Set)Language/Python2023. 10. 22. 12:33@hahekaku
Table of Contents

Python에는 데이터를 관리하고 처리하기 위한 다양한 내장 자료구조가 존재합니다. 그중에서 딕셔너리(Dictionary)와 집합(Set)은 각각 키-값 형태의 매핑 구조와 중복 없는 데이터 집합을 표현하기에 적합합니다. 두 자료구조는 기본적인 기능에서부터 고급 활용까지 광범위하게 사용되므로 이 글에서는 이들의 개념, 차이점, 사용 방법, 활용 사례를 깊이 있게 살펴보겠습니다.

딕셔너리(Dictionary)의 이해

딕셔너리(Dictionary)는 키(key)와 값(value)의 쌍으로 이루어진 데이터 구조입니다. 각 키는 고유하며, 이를 통해 값을 참조할 수 있습니다. 이는 JSON과 같은 데이터 구조를 다룰 때도 유용합니다.

딕셔너리의 생성 및 기본 사용법

딕셔너리는 중괄호 {}를 사용하여 생성합니다. 키는 불변형(예: 문자열, 숫자 등)이어야 하며, 값은 모든 형태의 데이터가 가능합니다.

# 딕셔너리 생성
user_profile = {
    "name": "홍길동",
    "age": 30,
    "hobbies": ["등산", "독서", "게임"]
}

# 값 참조
print(user_profile["name"])  # 홍길동

# 값 추가 및 수정
user_profile["age"] = 31
user_profile["location"] = "서울"
print(user_profile)

딕셔너리의 주요 메서드

  1. keys(): 모든 키 반환
  2. values(): 모든 값 반환
  3. items(): (키, 값) 쌍 반환
  4. get(): 키로 값을 가져오되, 없는 경우 기본값 반환
  5. pop(): 특정 키-값 제거 후 반환
# 주요 메서드 예제
print(user_profile.keys())    # dict_keys(['name', 'age', 'hobbies', 'location'])
print(user_profile.values())  # dict_values(['홍길동', 31, ['등산', '독서', '게임'], '서울'])
print(user_profile.get("age", "없음"))  # 31
print(user_profile.pop("location", "없음"))  # 서울

집합(Set)의 이해

집합(Set)은 중복되지 않는 요소의 모음으로, 수학의 집합 개념을 구현합니다. 데이터의 존재 여부를 확인하거나 중복을 제거하는 데 유용합니다.

집합의 생성 및 기본 사용법

set() 함수를 사용하거나 중괄호 {}로 생성할 수 있습니다. 빈 집합을 생성할 때는 반드시 set()을 사용해야 합니다.

# 집합 생성
unique_numbers = {1, 2, 3, 4, 5}
empty_set = set()

# 요소 추가
unique_numbers.add(6)

# 요소 제거
unique_numbers.discard(3)

print(unique_numbers)  # {1, 2, 4, 5, 6}

집합의 주요 연산

  1. 합집합 (union)
  2. 교집합 (intersection)
  3. 차집합 (difference)
  4. 대칭차집합 (symmetric_difference)
set_a = {1, 2, 3}
set_b = {3, 4, 5}

# 합집합
print(set_a | set_b)  # {1, 2, 3, 4, 5}

# 교집합
print(set_a & set_b)  # {3}

# 차집합
print(set_a - set_b)  # {1, 2}

# 대칭차집합
print(set_a ^ set_b)  # {1, 2, 4, 5}

딕셔너리와 집합의 차이점

구분 딕셔너리(Dictionary) 집합(Set)
데이터 구조 키-값 쌍 고유한 값
중복 허용 여부 키는 중복 불가, 값은 중복 가능 중복 불가
순서 유지 여부 Python 3.7 이상에서 순서 유지 순서 없음
주요 기능 매핑(mapping), 검색, 수정, 삭제 중복 제거, 집합 연산

활용 사례

딕셔너리로 사용자 관리 시스템 구현

딕셔너리는 키를 사용자 ID로 설정하여 유용하게 관리할 수 있습니다.

# 사용자 관리 시스템
users = {}

# 사용자 추가
users["user1"] = {"name": "김영희", "age": 25}
users["user2"] = {"name": "이철수", "age": 28}

# 특정 사용자 정보 확인
print(users.get("user1"))  # {'name': '김영희', 'age': 25}

집합으로 중복 제거 및 빠른 검색

집합은 리스트에 비해 데이터 검색 속도가 빠릅니다.

# 중복 제거
raw_data = [1, 2, 3, 4, 4, 5, 5, 6]
unique_data = set(raw_data)
print(unique_data)  # {1, 2, 3, 4, 5, 6}

# 빠른 검색
if 3 in unique_data:
    print("3은 데이터에 존재합니다.")

결론

딕셔너리와 집합은 각각 다른 목적과 사용 사례를 가지고 있습니다. 딕셔너리는 키-값 매핑을 통해 구조화된 데이터를 다룰 때 유용하며, 집합은 중복을 제거하거나 데이터 간의 집합 연산을 수행할 때 적합합니다. 두 자료구조의 특성과 기능을 잘 활용하면 데이터 처리가 훨씬 간결하고 효율적으로 이루어질 것입니다.

 

다른 글

 

Python 리스트(list)와 튜플(tuple)

파이썬에서 리스트(list)와 튜플(tuple)은 가장 기본적이고 자주 사용되는 자료구조입니다. 이 둘은 데이터의 저장 및 처리를 위한 컨테이너 역할을 하지만, 동작 방식과 용도에서 차이가 있습니다

gallery-a.tistory.com

 

'Language > Python' 카테고리의 다른 글

Python 파일 입출력 (파일 열기, 읽기와 쓰기)  (0) 2023.10.24
Python의 리스트 컴프리헨션(List Comprehension)  (0) 2023.10.23
Python 리스트(list)와 튜플(tuple)  (0) 2023.10.22
Python 조건문과 반복문  (0) 2023.10.21
Python 기본 문법 (데이터 타입, 연산자, 입력과 출력, 주석)  (1) 2023.10.21
Language/Python 추천 글
more
  • Python 파일 입출력 (파일 열기, 읽기와 쓰기)
    Python 파일 입출력 (파일 열기, 읽기와 쓰기)2023.10.24
  • Python의 리스트 컴프리헨션(List Comprehension)
    Python의 리스트 컴프리헨션(List Comprehension)2023.10.23
  • Python 리스트(list)와 튜플(tuple)
    Python 리스트(list)와 튜플(tuple)2023.10.22
  • Python 조건문과 반복문
    Python 조건문과 반복문2023.10.21
FRONTMAN

검색

250x250

방문자 수

Total
Today
Yesterday

카테고리

  • 분류 전체보기 (54)
    • Language (48)
      • JavaScript (15)
      • TypeScript (14)
      • Python (14)
      • Dart (5)
      • Java (0)
    • FE (6)
      • WEB (4)
      • React (0)
      • Flutter (1)
    • CS (0)
      • Algorithm (0)
      • Network (0)
    • DevOps (0)

공지사항

  • 전체보기

최근 글

인기 글

태그

  • async
  • 웹
  • typeScript
  • Interface
  • Modules
  • 타입스크립트
  • nodejs
  • 파이썬
  • 타입
  • CLASS
  • web
  • Type
  • OOP
  • Python
  • Object
  • DART
  • tuple
  • await
  • export
  • js
  • list
  • frontend
  • Import
  • function
  • npm
  • 리스트
  • JavaScript
  • 자바스크립트
  • inline frame
  • Flutter

최근 댓글

FRONTMAN :: hahekaku
CopyrightBluemivDesigned byBluemiv

티스토리툴바