Last in First Out(LIFO)의 특징을 가지고있다.
push는 list.append() pop은 list.pop()을 사용하면 된다.
Stack과 반대로 First in First Out(FIFO)의 특징을 가지고 있따.
put은 list.append() get은 list.pop(0)을 사용한다.
선언시 '[]'가 아닌 '()'을 사용
내부 값은 변경 불가하지만 리스트처럼 연산이 가능하다
리스트가 있는데 쓰는 이유는 함수의 반환값등 사용자 실수에 의한 에러를 사전에 방지한다.
데이터의 중복을 불허하는 특징있다
수학에서 활용하는 다양한 집합연산이 가능(교집합,합집합,차집합 등)
데이터를 저장할때 구분지을 수 있는 값을 함께 저장
Key값을 활용하여 데이터값(Value)를 관리한다
{Key1,value1, Key2:value2....}의 형태
deque : stack 과 queue를 지원하는 모듈로써 List에 비해 속도가 빠르다.
list형태의 함수를 모두 지원한다.
Counter : 시퀀스 타입의 데이터 개수를 dict 형태로 반환시켜준다.
OrderedDict : 일반 dict와 달리 순서대로 dict를 반환
defaultdict : dict type의 값에 기본값을 지정 , 신규값 생성 시 사용하는 방법
namedtuple : Tuple 형태로 Data 구조체를 저장 저장되는 data의 variable을 사전에 지정해서 저장
string type의 값을 '기준값'으로 나눠서 list로 반환 해준다.
unpacking으로도 가능하다
문자열을 합칠때 사용 기준값을 지정할 수도 있다.
포괄적인 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)
list의 원소값을 추출할 때 앞에 번호를 붙혀서 추출한다(index,value)
두 개의 list의 값을 병렬적으로 추출
함수 이름 없이 함수처럼 쓸 수 있는 익명함수
# 서로 같은 역할을 하는 코드
def f(x,y):
return x + y
f = lambda x,y : x+y
시퀀스형 데이터가 있을 시 함수랑 서로 맵핑 해주는 역할
def f(X):
return x + 5
ex = [1,2,3,4,5]
list(map(f,ex))
map과 달리 list에 똑같은 함수를 적용해서 통합
from functools import reduce로 사용
시퀀스형 자료형에서 데이터를 순서대로 추출하는 object
iter과 next가 사용된다. 메모리에 올라가지 않는것이 포인트
yield로 호출 시 메모리의 주소값만 가지고 있는 리스트를 직접 값을 하나씩 호출
대용량의 데이터 사용 시 제네레이터를 쓰는 것을 추천
개수가 정해지지 않은 변수를 함수의 파라미터로 사용하는법
def asterisk_test(a,b,*args):
retrun a+b+sum(args)
print(asterisk_test(1,2,3,4,5))
두개를 사용 시 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도 처음이다보니 뭔가 정리도 안되고 어지럽다 하지만 천천히 하다보면 될거라고 믿는다
날이 거듭될수록 점차 정리하는 방식과 복습이 늘어날 것이라고 생각한다.