파이썬 입문

파이썬 자료구조형(리스트,딕셔너리,튜플,세트)

푸른하늘 은하수짱 2024. 10. 31. 06:36
728x90
반응형

# 파이썬 데이터 구조 완벽 정리

1. 리스트(List)
정의
* 순서가 있는 시퀀스형 자료구조
* 여러 데이터 타입을 함께 저장할 수 있는 컨테이너
* 대괄호 [  ]를 사용하여 표현
 
특징
* 가변(mutable) 데이터 타입

* 인덱싱과 슬라이싱 지원
* 중복된 데이터 저장 가능
* 요소의 추가, 삭제, 수정이 자유로움
* 서로 다른 자료형을 담을 수 있음

 형식
* 생성 방법:
  - 빈 리스트: list_1 = [    ]
  - 데이터가 있는 리스트: list_2 = [1, 2, 3]
  - 리스트 함수 사용: list_3 = list()
  - 컴프리헨션: list_4 = [x for x in range(5)]

리스트는 파이썬에서 가장 많이 사용되는 데이터 구조로, 여러 타입의 데이터를 순서대로 저장할 수 있습니다.

# 기본 리스트 예제

mixed_list = [1, "파이썬", 3.14, "데이터", 42]

 

# 리스트 슬라이싱 활용
print(mixed_list[1:4])  # ["파이썬", 3.14, "데이터"]
print(mixed_list[::-1])  # [42, "데이터", 3.14, "파이썬", 1]

mixed_list.append("새로운 항목")
mixed_list.insert(2, "삽입된 항목")
print(mixed_list.count("파이썬"))  # 1

numbers = [x for x in mixed_list if isinstance(x, (int, float))]
print(numbers)  # [1, 3.14, 42]

2. 딕셔너리(Dictionary)
정의
* 키(key)와 값(value)의 쌍으로 이루어진 자료구조
* 중괄호 { }를 사용하여 표현
* 해시 테이블 기반의 자료구조

특징
* 가변(mutable) 데이터 타입
* 키는 유일하며 변경 불가능(immutable)한 타입만 가능
* 값은 모든 타입 가능
* 순서를 가지지 않음 (Python 3.7부터는 입력 순서 유지)
* 키를 통한 빠른 접근 가능

형식
* 생성 방법:
  - 빈 딕셔너리: dict_1 = { }
  - 데이터가 있는 딕셔너리:dict_2 = {'key': 'value'}
  - 딕셔너리 함수 사용: dict_3 = dict()
  - 컴프리헨션: dict_4 = {x: x**2 for x in range(5)}

number_dict = {
    1: "하나",
    2: "둘",
    3: "셋",
    4: "넷",
    5: "다섯"
}

 예제 1: 딕셔너리 조회 및 수정
print(number_dict[1])  # "하나"
number_dict[6] = "여섯"
print(number_dict.get(7, "찾을 수 없음"))  # "찾을 수 없음"


# 활용 예제 2: 딕셔너리 메서드 활용
keys = number_dict.keys()
values = number_dict.values()
items = number_dict.items()
print(list(items))  # [(1, "하나"), (2, "둘"), ...]


 활용 예제 3: 딕셔너리 컴프리헨션
squared_dict = {x: x**2 for x in range(1, 6)}
print(squared_dict)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

3. 튜플(Tuple)
* 튜플은 불변(immutable)한 순서가 있는 데이터 구조입니다.

* 소괄호 (  )를 사용하여 표현
* 불변(immutable) 리스트라고도 불림

# 특징
* 불변(immutable) 데이터 타입
* 인덱싱과 슬라이싱 지원
* 중복된 데이터 저장 가능
* 리스트보다 적은 메모리 사용
* 데이터 보호가 필요할 때 사용

형식
* 생성 방법:
  - 빈 튜플: tuple_1 = ()
  - 데이터가 있는 튜플: tuple_2 = (1, 2, 3)
  - 튜플 함수 사용: tuple_3 = tuple()
  - 단일 요소 튜플: tuple_4 = (1,)


mixed_tuple = (1, "파이썬", 3.14, "튜플", 42)

활용 예제 1: 튜플 패킹과 언패킹
coordinates = (10, 20, 30)
x, y, z = coordinates
print(f"x: {x}, y: {y}, z: {z}")  # x: 10, y: 20, z: 30

활용 예제 2: 튜플을 딕셔너리 키로 사용
point_data = {(0, 0): "원점", (1, 0): "x축 양의 방향", (0, 1): "y축 양의 방향"}
print(point_data[(0, 0)])  # "원점

활용 예제 3: 튜플 메서드 활용
numbers = (1, 2, 2, 3, 2, 4, 5)
print(numbers.count(2))  # 3
print(numbers.index(4))  # 5

4. 세트(Set)
세트는 중복을 허용하지 않는 순서가 없는 데이터 구조입니다.
# 기본 세트 예제
mixed_set = {1, "파이썬", 3.14, "세트", 42}

# 활용 예제 1: 세트 연산
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2)  # 교집합: {4, 5}
print(set1 | set2)  # 합집합: {1, 2, 3, 4, 5, 6, 7, 8}

# 활용 예제 2: 중복 제거
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # {1, 2, 3, 4, 5}

# 활용 예제 3: 세트 메서드 활용
fruits = {"사과", "바나나", "오렌지"}
fruits.add("망고")
fruits.remove("바나나")
print(fruits)  # {"사과", "오렌지", "망고"}

이상으로 파이썬의 주요 데이터 구조에 대해 알아보았습니다. 각각의 데이터 구조는 고유한 특징과 용도가 있으며, 상황에 맞게 적절히 선택하여 사용하는 것이 중요합니다.

728x90
반응형