split & join
split
split은 string type의 값을 '기준값'으로 나눠서 list형태로 반환해주는 함수이다.
items ='zero one two three'.split() # 빈칸을 기준으로 문자열 나누기
print(items)
#>>> ['zero','one','two','three']
join
join은 string으로 구성된 list를 합쳐 하나의 string으로 반환해주는 함수이다.
colors =['red','blue','green','yellow']
result =''.join(colors)
print(result)
# >>> 'redbluegreenyellow'
list comprehension
리스트 컴프리헨션은 기존 list를 사용하여 간단히 다른 list를 만드는 기법이다.
result =[iforiinrange(10)ifi%2==0]
print(result)
# >> [0,2,4,6,8]
enumerate & zip
enumerate
enumerate는 list의 element와 index값을 같이 추출해주는 함수이다.
for i, v in enumerate(['tic','tac','toe']):
print(i, v)
# >>> 0 tic
# >>> 1 tac
# >>> 2 toe
zip
zip은 두 개의 list의 값을 병렬적으로 추출해주는 함수이다.
a = ['a1','a2','a3']
b = ['b1','b2','b3']
for x, y in zip(a, b):
print(x, y)
# >>> a1 b1
# >>> a2 b2
# >>> a3 b3
lambda & map & reduce
lambda
람다는 함수 이름 없이 함수처럼 쓸 수 있는 익명함수이다.
f = lambda x, y: x + y
print(f(1, 4))
# >> 5
python 3부터 권장하지 않는다고 하는데 여전히 많이 쓰인다고 한다.
map
map은 리스트의 각 요소에 함수를 적용시켜주는 함수이다. 두 개 이상의 list에도 적용이 가능하다.
ex =[1,2,3,4,5]
print(list(map(lambdax: x+x, ex)))
list를 붙여줘야 다시 list로 사용이 가능하다.
이전에 작성한 글 '한 번 쓰고 버려지는 iterator 객체' 도 참고해보면 좋을듯 하다
reduce
map function과 달리 list에 똑같은 함수를 적용해서 통합해주는 함수이다.
from functools import reduce
print(reduce(lambdax, y: x+y, [1, 2, 3, 4, 5]))
lambda나 reduce 함수는 직관성이 떨어져서 python3에서 사용을 권장하지 않는다고 한다.
generator
generator는 iterable object를 특수한 형태로 사용해주는 함수이다. 다음 코드를 보면 'yield'를 사용해 한 번에 하나의 element만을 반환해준다. 다시 말해 element가 사용되는 시점에 값을 메모리에 반환해준다.
def a(v):
result = []
for i in range(v):
yield i
generator도 list처럼 generator comprehension을 사용할 수 있는데 generator expression이라는 이름으로도 부른다고 한다.
gen_ex = (n*n for n in range(500))
print(type(gen_ex))
generator는 읽기 쉬운 장점이 있고 큰 데이터를 처리할 때 고려해볼 수 있다.
passing arguments
함수에 입력되는 arguments의 다양한 형태가 있다.
Keyword arguments
함수에 입력되는 parameter의 변수명을 사용한다.
print_somthing(your_name="TEAMLAB",my_name="Sungchul")
Default arguments
parameter의 기본 값을 사용, 입력하지 않을 경우 기본값 출력
def a(name, your_name='teamlab'):
print(name, your_name)
a('joo')
asterisk
asterisk는 함수의 parameter가 정해지지 않았고 개수가 정해지지 않은 변수를 넘겨줄 때 사용한다. 즉, 가변인자를 넘길 때 사용한다.
def asterisk_test(a, b, *args):
return a + b + sum(args)
print(asterisk_test(1,2,3,4,5))
asterisk를 두 개 사용하면 입력값을 dict type으로 사용할 수 있다.
def x(**kwargs):
print(kwargs)
x(first=3,second=4,third=5)
이외에도 tuple, dict 등 자료형에 들어가 있는 값을 unpacking할 때 사용할 수 있다.
def asterisk_test(a, *args):
print(a, args)
print(type(args))
asterisk_test(1, *(2,3,4,5,6))
'Boostcamp AI Tech' 카테고리의 다른 글
[Boostcamp Day-4] Python - Module and Project (0) | 2021.08.05 |
---|---|
[Boostcamp Day-4] Python - Object Oriented Programming (0) | 2021.08.05 |
[Boostcamp Day-4] AI Math - RNN 첫걸음 (0) | 2021.08.05 |
[Boostcamp 과제 - 2, 3] Text Processing I, II (0) | 2021.08.05 |
[Boostcamp 과제 - 1] Basic Math (0) | 2021.08.05 |