본문 바로가기
Python 문법/Python 기본 문법(3.10 기준)

[python3.10 기본] 6. 데이터 구조

by cogito21_python 2024. 7. 1.
반응형

6.1 리스트 (List)

리스트는 순서가 있는 변경 가능한 데이터 구조로, 다양한 타입의 요소를 포함할 수 있습니다.

 

리스트 생성

fruits = ["apple", "banana", "cherry"]

리스트 요소 접근

print(fruits[0])  # apple
print(fruits[1])  # banana
print(fruits[-1])  # cherry

리스트 요소 변경

fruits[1] = "blueberry"
print(fruits)  # ["apple", "blueberry", "cherry"]

리스트 요소 추가

fruits.append("date")
print(fruits)  # ["apple", "blueberry", "cherry", "date"]

리스트 요소 삭제

fruits.remove("blueberry")
print(fruits)  # ["apple", "cherry", "date"]

리스트 컴프리헨션

squares = [x**2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

6.2 튜플 (Tuple)

튜플은 순서가 있는 변경 불가능한 데이터 구조로, 다양한 타입의 요소를 포함할 수 있습니다.

 

튜플 생성

coordinates = (1, 2, 3)

튜플 요소 접근

print(coordinates[0])  # 1
print(coordinates[1])  # 2
print(coordinates[-1])  # 3

튜플 요소 변경 불가

# coordinates[1] = 5  # TypeError: 'tuple' object does not support item assignment

튜플 언패킹

x, y, z = coordinates
print(x, y, z)  # 1 2 3

6.3 세트 (Set)

세트는 순서가 없고 중복을 허용하지 않는 데이터 구조입니다.

 

세트 생성

fruits = {"apple", "banana", "cherry"}

세트 요소 추가

fruits.add("date")
print(fruits)  # {"apple", "banana", "cherry", "date"}

세트 요소 삭제

fruits.remove("banana")
print(fruits)  # {"apple", "cherry", "date"}

세트 연산

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))  # {1, 2, 3, 4, 5}
print(set1.intersection(set2))  # {3}
print(set1.difference(set2))  # {1, 2}

6.4 딕셔너리 (Dictionary)

딕셔너리는 키-값 쌍으로 이루어진 순서가 있는 변경 가능한 데이터 구조입니다.

 

딕셔너리 생성

person = {"name": "Alice", "age": 25}

딕셔너리 요소 접근

print(person["name"])  # Alice
print(person["age"])  # 25

딕셔너리 요소 변경

person["age"] = 26
print(person)  # {"name": "Alice", "age": 26}

딕셔너리 요소 추가

person["city"] = "New York"
print(person)  # {"name": "Alice", "age": 26, "city": "New York"}

딕셔너리 컴프리헨션

squares = {x: x**2 for x in range(10)}
print(squares)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

6.5 컬렉션 모듈

파이썬의 collections 모듈은 기본 데이터 구조 외에도 여러 유용한 데이터 구조를 제공합니다.

 

Counter

from collections import Counter
count = Counter([1, 2, 2, 3, 3, 3])
print(count)  # Counter({3: 3, 2: 2, 1: 1})

defaultdict

from collections import defaultdict
dd = defaultdict(int)
dd["a"] += 1
print(dd)  # defaultdict(<class 'int'>, {'a': 1})

OrderedDict

from collections import OrderedDict
od = OrderedDict()
od["a"] = 1
od["b"] = 2
print(od)  # OrderedDict([('a', 1), ('b', 2)])

deque

from collections import deque
dq = deque([1, 2, 3])
dq.append(4)
dq.appendleft(0)
print(dq)  # deque([0, 1, 2, 3, 4])
반응형