네이버 부스트캠프 5기 1일차

김태민·2023년 3월 6일
1

boostcamp1week

목록 보기
1/5

Python data Structure

Stack

Last in First Out(LIFO)의 특징을 가지고있다.
push는 list.append() pop은 list.pop()을 사용하면 된다.

queue

Stack과 반대로 First in First Out(FIFO)의 특징을 가지고 있따.
put은 list.append() get은 list.pop(0)을 사용한다.

tuple

선언시 '[]'가 아닌 '()'을 사용
내부 값은 변경 불가하지만 리스트처럼 연산이 가능하다
리스트가 있는데 쓰는 이유는 함수의 반환값등 사용자 실수에 의한 에러를 사전에 방지한다.

set

데이터의 중복을 불허하는 특징있다
수학에서 활용하는 다양한 집합연산이 가능(교집합,합집합,차집합 등)

dictionary

데이터를 저장할때 구분지을 수 있는 값을 함께 저장
Key값을 활용하여 데이터값(Value)를 관리한다
{Key1,value1, Key2:value2....}의 형태

collections

deque : stack 과 queue를 지원하는 모듈로써 List에 비해 속도가 빠르다.
list형태의 함수를 모두 지원한다.
Counter : 시퀀스 타입의 데이터 개수를 dict 형태로 반환시켜준다.
OrderedDict : 일반 dict와 달리 순서대로 dict를 반환
defaultdict : dict type의 값에 기본값을 지정 , 신규값 생성 시 사용하는 방법
namedtuple : Tuple 형태로 Data 구조체를 저장 저장되는 data의 variable을 사전에 지정해서 저장

Pythonic code

split

string type의 값을 '기준값'으로 나눠서 list로 반환 해준다.
unpacking으로도 가능하다

join

문자열을 합칠때 사용 기준값을 지정할 수도 있다.

list comprehension

포괄적인 list로 for + append 조합보다 속도가 빠르다

# 서로 같은 역할을 하는 코드
result = [i+j for i in case_1 for j in case_2 if not(i==j)]

for i in case_1:
	for j in case_2:
		if not(i==j):
			result.append(i+j)
# 서로 같은 역할을 하는 코드
result = [[i+j for i in case_1] for j in case_2]

for j in case_2:
	line =[]
	for i in case_1:
		line.append(i+j)

enumerate

list의 원소값을 추출할 때 앞에 번호를 붙혀서 추출한다(index,value)

zip

두 개의 list의 값을 병렬적으로 추출

lambda

함수 이름 없이 함수처럼 쓸 수 있는 익명함수

# 서로 같은 역할을 하는 코드
def f(x,y):
	return x + y

f = lambda x,y : x+y

map

시퀀스형 데이터가 있을 시 함수랑 서로 맵핑 해주는 역할

def f(X):
	return x + 5
ex = [1,2,3,4,5]
list(map(f,ex))

reduce

map과 달리 list에 똑같은 함수를 적용해서 통합
from functools import reduce로 사용

iterable objects

시퀀스형 자료형에서 데이터를 순서대로 추출하는 object
iternext가 사용된다. 메모리에 올라가지 않는것이 포인트
yield로 호출 시 메모리의 주소값만 가지고 있는 리스트를 직접 값을 하나씩 호출
대용량의 데이터 사용 시 제네레이터를 쓰는 것을 추천

가변인자

개수가 정해지지 않은 변수를 함수의 파라미터로 사용하는법

def asterisk_test(a,b,*args):
	retrun a+b+sum(args)
print(asterisk_test(1,2,3,4,5))

keward argument

두개를 사용 시 dict 형식으로 반환(키워드)
함수의 입력 시 은 unpacking 역할을 담당
함수의 인자의
은 여러개의 가변인자를 받는 담당
함수의 인자의
은 여러개의 키워드가변인자를 받는 담당 (dict타입을 풀어줄 때 주로 사용)

def kwargs_test_3(one,two=3,*args,**kwargs):
	print(one+two+sum(args))
	print(args)
	print(kwargs)
kwargs_test_3(10, 30 ,3,5,6,7,8, first=3,second=4,third=5)
#가변인자의 순서는 지켜줘여함

회고

처음 부트캠프를 시작하고 velog도 처음이다보니 뭔가 정리도 안되고 어지럽다 하지만 천천히 하다보면 될거라고 믿는다
날이 거듭될수록 점차 정리하는 방식과 복습이 늘어날 것이라고 생각한다.

profile
한성대학교 네이버 AI Tech 5기 NLP

1개의 댓글

comment-user-thumbnail
2023년 3월 9일

도비시작~!

답글 달기