본문 바로가기
카테고리 없음

Python 데이터 구조: 리스트, 튜플, 딕셔너리, 집합 사용법

by 네_오 2024. 5. 24.

 

Python은 다양한 데이터 구조를 제공하여 데이터를 효율적으로 저장하고 조작할 수 있도록 합니다. 이 글에서는 Python에서 자주 사용되는 주요 데이터 구조인 리스트, 튜플, 딕셔너리, 집합에 대해 설명하고, 각 데이터 구조의 특징과 사용 예제를 살펴보겠습니다.

소개

데이터 구조는 데이터를 저장하고 조직화하는 방법을 의미합니다. 적절한 데이터 구조를 선택하면 프로그램의 효율성을 크게 향상시킬 수 있습니다. Python은 내장 데이터 구조를 제공하여 다양한 형태의 데이터를 쉽게 다룰 수 있게 합니다.

본문

리스트(List)

리스트는 순서가 있는 변경 가능한 데이터 구조로, 다양한 데이터 타입을 저장할 수 있습니다. 리스트는 대괄호 []를 사용하여 정의합니다.

리스트 정의 및 사용

# 리스트 정의
fruits = ["apple", "banana", "cherry"]

# 요소 접근
print(fruits[0]) # 출력: apple

# 요소 추가
fruits.append("orange")
print(fruits) # 출력: ["apple", "banana", "cherry", "orange"]

# 요소 삭제
fruits.remove("banana")
print(fruits) # 출력: ["apple", "cherry", "orange"]

튜플(Tuple)

튜플은 순서가 있는 변경 불가능한 데이터 구조입니다. 리스트와 유사하지만, 튜플은 한 번 정의되면 변경할 수 없습니다. 튜플은 소괄호 ()를 사용하여 정의합니다.

튜플 정의 및 사용

# 튜플 정의
colors = ("red", "green", "blue")

# 요소 접근
print(colors[1]) # 출력: green

# 요소 변경 시도 (오류 발생)
# colors[1] = "yellow" # 오류: 튜플은 변경할 수 없음

딕셔너리(Dictionary)

딕셔너리는 키-값 쌍을 저장하는 데이터 구조로, 중괄호 {}를 사용하여 정의합니다. 키는 고유해야 하며, 값은 중복될 수 있습니다.

딕셔너리 정의 및 사용

# 딕셔너리 정의
person = {"name": "John", "age": 30, "city": "New York"}

# 요소 접근
print(person["name"]) # 출력: John

# 요소 추가 및 변경
person["age"] = 31
person["email"] = "john@example.com"
print(person) # 출력: {"name": "John", "age": 31, "city": "New York", "email": "john@example.com"}

# 요소 삭제
del person["city"]
print(person) # 출력: {"name": "John", "age": 31, "email": "john@example.com"}

집합(Set)

집합은 중복을 허용하지 않는 데이터 구조로, 수학에서의 집합 개념과 유사합니다. 집합은 중괄호 {}를 사용하여 정의합니다.

집합 정의 및 사용

# 집합 정의
numbers = {1, 2, 3, 4, 5}

# 요소 추가
numbers.add(6)
print(numbers) # 출력: {1, 2, 3, 4, 5, 6}

# 요소 삭제
numbers.remove(3)
print(numbers) # 출력: {1, 2, 4, 5, 6}

# 중복 요소 추가 시도 (변화 없음)
numbers.add(2)
print(numbers) # 출력: {1, 2, 4, 5, 6}

결론

이 글에서는 Python의 주요 데이터 구조인 리스트, 튜플, 딕셔너리, 집합에 대해 살펴보았습니다. 각 데이터 구조는 고유한 특성과 용도를 가지고 있어, 상황에 맞게 적절한 데이터 구조를 선택하는 것이 중요합니다. Python의 다양한 데이터 구조를 잘 활용하면 데이터를 효율적으로 관리하고 처리할 수 있습니다.

이 글이 Python의 데이터 구조를 이해하는 데 도움이 되었기를 바랍니다. 추가 질문이나 더 알고 싶은 내용이 있다면 언제든지 댓글로 남겨주세요. 감사합니다!