# 파이썬 자료구조

안규원·2024년 8월 25일
0

etc

목록 보기
1/1

List


  • 대표적인 열거형 자료구조
  • 순서대로 값 저장
  • 배열과 유사하지만, 각 요소들이 다른 데이터 타입으로 구성될 수 있음
  • 확장에 있어서 자유로움
empty_list = []
my_list = [1, 2, 3, 4]
  • 요소: 리스트의 각 항목
  • 문자열에서처럼, 리스트[인덱스]로 접근하며 슬라이싱 가능
>>> my_list = [1, 2, 3, 4]
>>> my_list[2]
3
>>> my_list[3:]
[4]
>>> my_list[-1]
4
  • 복합 리스트: 리스트의 요소로 리스트를 사용할 수 있음
  • 문자열과 동일하게 연산 가능
[1, 2] + [a, b] # [1, 2, a, b]
[1, 2] * 2 # [1, 2, 1, 2]

len(['l', 'i', 's', 't']) # 4
max([1, 2, 3, 5]) # 5

s = ['l', 'i', 's', 't']
s.index('i') # 1
't' in s # True
'a' not in s # True
s.count('1') # 1

Tuple


  • 열거형 자료구조

  • 순서대로 값을 저장

  • 배열과 유사

  • 불변(str:새로운 저장공간에 문자열이 할당됨, tuple) / 가변(list)

  • 괄호 () 를 사용, 각 항목은 쉼표로 구분

empty_tuple = ()
single_tuple = (1, )
my_tuple = (1, 2, 3, 4)
  • 리스트와 동일하게 튜플[인덱스]로 접근하며 슬라이싱 가능
>>> my_tuple = (1, 2, 3, 4)
>>> my_tuple[1]
2
>>> my_tuple[:2]
(1, 2)
  • 리스트와 동일하게 +, * 연산 가능
s = ('l', 'i', 's', 't')
len(s) # 4
s.index('i') # 1
't' in s # True
'x' not in s # True
  • 패킹: 여러 값을 하나의 튜플로 묶는 것
tp = 1, 2, 3
  • 언패킹: 하나의 튜플의 값을 여러 변수에 할당하는 것
tp = (1, 2, 3)
x, y, z = tp # x=1, y=2, z=3

x, _, _, y, z = (1, -1, 0, 2, 5)

>>> val1, *vals, val2, val3 = (1, 2, 3, 4, 5)
>>> print(vals)
[2, 3] # 리스트로 반환

Dictionary


  • 매핑 자료구조

  • Key/Value

  • 해시 테이블과 유사

  • 중괄호 {}를 사용

  • 각 요소의 키와 값은 콜론 :으로 구분

  • 각 요소 간에는 쉼표 ,으로 구분

empty_dict = {}
my_dict = {'one': 1, 'two': 2, 'three': 3}
  • dictionary[key] 로 접근
>>> my_dict = {'one': 1, 'two': 2, 'three': 3}
>>> my_dict
{'one': 1, 'two': 2, 'three': 3}
>>> my_dict['one']
1
>>> my_dict['four']
KeyError: 'four'
  • key는 불변 타입만 사용 가능(list 불가/tuple 가능)

  • value는 제약 없음

  • keys(): 저장된 key 목록

  • values(): 저장된 value 목록

  • items(): 저장된 (key, value) 쌍

Set


  • 집합 자료구조

  • 중복 불가능

  • 각 요소들이 해싱되어 저장되며 순서를 가지지 않음

  • 인덱스를 통한 요소 조회, 슬라이싱 불가

  • {} 또는 set() 을 통해 정의

my_set = {1, 2, 2, 3} # {1, 2, 3}
good_set = set("Good") # {"G", "o", "d"}
empty_set = set()

0개의 댓글