공부/Python
Python/unpacking, lambda 함수, map
Chelsey
2022. 2. 11. 01:31
728x90
unpacking
변수에 저장되어 있는 데이터를 풀어서, 여러개의 변수에 나눠서 저장한다.
<-> packing : 여러개의 데이터를 묶어서 변수1개에 저장한다.
# unpacking
x=[1,2,3]
print(*x)
num=(1,2,3,4,5)
a,b,_,d,e=num
a #1
x,y,*z=num
z # 3,4,5
# 세개의 인자를 넘겨야하는 경우 세개의 요소가 있어도 하나의 리스트임을 인지해야한다!!!
def dString(year, month, day):
return str(year)+"."+str(month)+"."+str(day)
dString([2022,1,11]) # 2022,1,11 이라는 인자 세개가 아니라 하나의 리스트로 넘어가서 error 발생
dString(*[2022,1,11]) # unpacking해서 넘기면 error 안남
lambda function
def 와 같은 함수 정의 방법이지만, def보다 좀 더 간단한 기능의 함수를 정의할 때 사용하건, def를 사용하지 못할 때 사용한다.
간단한 함수라 변수에 대입하지 않는 경우가 있는데 이 땐 익명함수라고 한다.
def sum(a,b):
return a+b
# 위 함수를 lambda식 표현하면
sum=lambda a,b:a+b
(lambda a,b:a+b)(5,10) # 인수갯수 맞아야함
lambda 매개변수(들):원하는식
값이 정해진 변수 사용방법
y=10 # 함수 밖에서 초기화
(lambda x:x+y)(5)
map
여러줄로 써야 함수를 적용할 수 있는 것을 좀 더 간단한 코드만으로도 적용할 수 있다.
def add(a):
...
map(add, x)
# x를 add함수 적용
map(lambda a:a+1, x)
# x를 lambda에 정의된 함수로 적용
if 조건문 활용
식 if 조건문 else 식
식 if 조건문 else 식2 if 조건문 else 식3
map(lambda x:str(x) if x%2==0 else x, x)
728x90