스택 (Stack)
큐 (Queue)
튜플 (Tuple)
집합 (Set)
딕셔너리 (dictionary)
Collections
dict type의 값에 기본 값을 지정
from collections import defaultdict
dic = defaultdict(int) # Defalut 값을 0으로 설정
dic = defaultdict(lambda: 0) # Defalut 값을 0으로 설정
data 구조체를 저장하는 방법
from collections import namedtuple
Point = namedtuple('Point', ['x','y'])
p = Point(3, y=4)
print(p[0] + p[1]) # 7
x, y = p
print(p.x + p.y) # 7
가장 많이 사용되는 기법 중 하나
num1 = [i for i in range(5)] # [1, 2, 3, 4, 5]
num2 = [i+j for i in range(3) for j in range(3)] # [0, 1, 2, 1, 2, 3, 2, 3, 4]
num3 = [i for i in range(10) if i % 2 == 0] # [0, 2, 4, 6, 8]
tip) pprint: 정렬되어 출력!
sequence형 자료형에서 데이터를 순서대로 추출하는 object
내부적 구현으로 iter , next가 사용된다.
iter()와 next() 함수로 iterable 객체를 iterator object로 사용한다.
구조
ref. https://mingrammer.com/translation-iterators-vs-generators/
keyword arguments
default arguments
- parameter의 기본 값을 사용, 입력하지 않을 경우 기본값 출력
def func1(x,y): # keyword arguments
print(x,y)
def func2(x,y=1): # default arguments
print(x,y)
Variable-length arguments
개수가 정해지지 않은 변수
asterisk(*) 기호를 사용하여 함수의 parameter를 표시
def func1(*args):
x, y, z = args
print(x, y, z)
func1(1, 2, 3)
asterisk(*) 두개를 사용하여 함수의 parameter를 표시
입력된 값은 dict로 사용할 수 있음
기존 가변인자 다음에 사용
def func1(**kwargs):
print(kwars)
func1(first=1, second=2, third=3)
# tip parameter 순서
keyword -> default -> 가변인자 -> 키워드 가변인자
(one, two, *args, **kwargs)
(one = 10, two, 3, 4, 5, first=3, ...) # error
tuple, dict 등 자료형에 들어가 있는 값을 언패킹
num = [[1, 2], [3, 4], [5, 6]]
print(num) # [[1, 2], [3, 4], [5, 6]]
print(*num) # [1, 2] [3, 4] [5, 6]
객체 지향 프로그래밍
Class
class SoccerPlayer(object):
def __init__(self, name, position): # 객체 초기화 예약 함수
self.name = name
self.position = position
def change_name(self, new_name): # method(action) 추가
print("선수의 이름을 변경합니다")
self.name = new_name
jisung = SoccerPlayer("jisung", "MF") # objects 생성
Inheritance (상속)
Polymorphism (다형성)
Visibility (가시성)
Decorate
함수 내에 또 다른 함수가 존재
def outer():
def inner():
...
closures: inner function을 return 값을 반환
def outer():
def inner():
print("hello")
return inner
Module
Package
Virtual Environment