map()
map의 기본 설명은 보통
map(function, iterable)
# 첫 번째 매개변수로는 함수, 두 번째 매개변수로는 반복 가능한 자료형(리스트, 튜플 등)
이라고 설명되어있는데, 간단히 말하자면
map(인자에 하고싶은 기능, 변수(리스트,튜플 등 배열의 형태에서 하나씩 빼서 인자로 줌))
이라고 생각하면 된다.
예를 들어 아래처럼 적용된다.
def add_one(n):
return n + 1
myList = [1, 2, 3, 4, 5]
result = list(map(add_one, myList))
##결과##
result = [2, 3, 4, 5, 6]
주의할 점
주의 할 점은 map 함수의 반환 값은 map객체 이기 때문에 해당 자료형을 list 혹은 tuple로 형 변환시켜주어야 한다. 만약 위 코드에서 list를 붙이지않는 다면
print(result)
##출력값##
<map object at 0x0000020F30037520>
이 된다.
lambda
lambda는 일종의 형식으로
lambda 매개변수 : 표현식
으로 표현되는데
result = (lambda x,y: x + y)(10, 20)
print(result)
##출력##
30
처럼 사용가능 하다. 참고로
print((lambda x,y: x + y)(10, 20))
#로 바로쓸 경우 아래처럼 lambda object가 출력되니 변수에 할당 후 써야한다.
##출력##
<function <lambda> at 0x000002D2EF9C5CF0>
섞어서 쓰면 아래와 같은 코드 활용도 가능하다.
(아래는 split함수도 쓰이는데 이 함수는 문자열을 일정문자로 나눈 리스트로 반환해주는 함수이다.)
def toWeirdCase(s):
return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))
이를 map()부터 해석하자면
a. 첫번째 매개변수: lambda x: "".join([a.lower() if i % 2 else a.upper() for i
b. 두번째 매개변수: s.split(" ")
이므로
s를 " "로 나눈 리스트에서 하나씩 단어를 뽑아서(b) //
i가 홀수면 소문자, 짝수면 댜문자로 바꾼값을 join으로 모은 것을 (b)
다시 join으로 모아 반환한다. 라는 뜻이다.
이의 응용 문제로 아래 이 문제를 추천드린다.
https://school.programmers.co.kr/learn/courses/30/lessons/12930
'Algorithm > TeamNote' 카테고리의 다른 글
(Python)최대공약수(GCD)와 최소공배수(LCM) 구하기 (0) | 2023.06.14 |
---|---|
(Python) 진수 변환 (2진수, 3진수, 5진수, 10진수, 16진수) (0) | 2023.06.14 |
Zip() 사용법 (0) | 2023.06.13 |
(join함수)리스트를 정수 혹은 문자열로 바꾸는 방법 (0) | 2023.06.12 |
(enumerate함수)for문에서 횟수와 객체를 동시에 가져오고 싶을때 (0) | 2023.06.12 |