본문 바로가기

전체 글

(65)
Python 패킹(packing) 언패킹(unpacking) 총정리 리스트 언패킹 li = [1, 2, 3, 4] a, b, c, d = li 스타를 활용한 리스트 언패킹 li = [1, 2, 3, 4] a, *b, c= li # a = 1, b = [2, 3], c = 4 튜플 언패킹 tu = (1, 2, 3, 4) a, b, c, d = tu 함수 인자 언패킹(딕셔너리 언패킹) def my_function(a, b, c, d): print(a, b, c, d) di = dict(a=1, b=2, c=3, d=4) # * : key unpacking # ** : value unpacking my_function(*di) # a b c d my_function(**di) # 1 2 3 4 * 주의 : **를 사용하여 value unpacking 시 함수의 매개변수 이름과..
Python 제너레이터(Generator) 제너레이터(Generator)란? 제너레이터란, 반복 가능한 객체(iterable)를 만드는데 사용되는 함수다. 제너레이터를 만들기 위해서는 yield 키워드를 사용한다. 제너레이터를 만드는 방법에는 크게 2가지가 있다. 제너레이터 함수를 이용한 방법 제너레이터 표현식을 이용한 방법 제너레이터 함수 def generator(): print("hello, 1") yield 1 print("hello, 2") yield 2 print("hello, 3") yield 3 제너레이터를 정의하기 위해서는 위와 같이 함수에 yield 키워드를 사용하면 된다. yield 키워드 다음에 오는 값을 반환한다. gen = generator() print(gen) >> 제너레이터 객체를 만들려면 함수를 호출하면 된다. ge..
Python 연결 리스트(Linked List) 연결 리스트(Linked List)는 데이터 요소들을 순서대로 저장하는 자료구조다. 연결리스트는 위 그림처럼 노드로 이루어져 있다. 각 노는 데이터와 다음 노드를 가리키는 포인터(Pointer)로 이루어져 있다. 이 포인터는 다음 노드의 위치를 가리키므로, 데이터 요소들이 메모리에 연속적으로 저장되지 않아도 된다. 앞서 배운 클래스를 통해 파이썬으로 노드와 연결리스트를 구현해보자. class LinkedList: def __init__(self): self.head = None pass def insert_head(self, data): new_node = LinkedList.Node(data, self.head) self.head = new_node pass class Node: def __init__..