파이썬 람다함수와 map

강아지 이름은 봄이·2024년 1월 17일
post-thumbnail

🤨 더 좋은 코드가 있을 것 같은데 ...

백준 문제를 풀다가 입력을 (5, 3) 받으면 1만큼 감소한 값을 저장하도록 코드를 작성했다.

taxiY, taxiX = map(int, input().split())
taxiY -= 1
taxiX -= 1 #택시의 최초 위치

아무리 생각해도 줄일 수 있을 것 같아 chatGPT 한테 물어봤더니 lambda 함수를 사용한 코드를 알려주었다!

🍯 map 함수와 lambda 함수의 꿀조합

map 함수 기본

map(적용시킬함수, 반복가능자료형)

첫번째 매개변수로는 함수가 오고
두번째 매개변수로는 반복 가능한 자료형 (리스트, 튜플 등)이 온다.

map 함수의 반환값은 map 객체이기 때문에 내가 리턴하고자 하는 자료형으로 변환시켜줘야 한다!

map함수는 반복가능자료형 각각에 적용시킬함수를 적용하여 map 객체로 리턴해준다.
예를 들어 map(값에 1을 더해주는 함수, [1, 2, 3, 4, 5]) 형태고, 함수 전체를 list로 감싸주면 (자료형이 변환된 결과를 list형태로 바꿔주면)
[2, 3, 4, 5, 6] 이 된다.

map 예시

list(map(int, ['1', '2', '3', '4', '5'])

# 각 문자열을 int형으로 바꾼 뒤 list로 변환
# [1, 2, 3, 4, 5]

case 1.

list(map(lambda n : n*2, [1, 2, 3, 4, 5]))

# [1,2,3,4,5] 각 원소가 매개변수 n에 대응되고
# n의 2배의 값으로 바꾼 뒤 list로 변환
# [2 4, 6, 8, 10]

case 2.

list(map(labmda n : int(n), ['1', '2', '3', '4', '5']))

# ['1', '2', '3', '4', '5'] 각 원소가 매개변수 n에 대응되고
# n이 정수형으로 바뀐 뒤 list로 변환
# [1, 2, 3, 4, 5]

case 3.

list(map(lambda n : int(n)-1, ['1', '2', '3', '4', '5']))

# ['1', '2', '3', '4', '5'] 각 원소가 매개변수 n에 대응되고
# n이 정수형으로 바뀐 뒤 1을 빼서 list로 변환
# [0, 1, 2, 3, 4]

😽 도움을 받은 사이트

https://blockdmask.tistory.com/531

0개의 댓글