알고리즘 4/4

justyoon·2023년 4월 5일
0

AI5 Python/Django

목록 보기
17/31

Prblm

구현훈련하기 - 배열 두배 만들기

Try

def solution(numbers):
    return [num*2 for num in numbers]

numbers 리스트의 각 원소를 num이라 했을때
for문을 사용해 모든 num에 2를 곱하고 반환한다.

Solve

append 풀이

def solution(numbers):
    answer = []
    for num in numbers:
        answer.append(num * 2)
    return answer

numpy, array 풀이

import numpy as np

def solution(numbers):
    answer = []
    answer = np.array(numbers)*2
    answer = answer.tolist()
    return answer

map, lambda 풀이

def solution(numbers):
    return list(map(lambda x: x * 2, numbers))

Learn

reference

💡map

  • 파이썬 내장함수 map(f, iterable)은 함수(f)와 반복 가능한 데이터를 입력으로 받는다.
  • 즉 map 함수는 입력받은 데이터의 각 요소에 함수 f를 적용한 결과를 리턴하는 함수이다.
#append 사용
def two_times(numberList):
    result = []
    for number in numberList:
        result.append(number*2)
    return result

result = two_times([1, 2, 3, 4])
print(result)
결과: [2, 4, 6, 8]

two_times 함수는 리스트를 입력받아 리스트의 각 요소에 2를 곱해 리턴하는 함수이다.

#map 사용
def two_times(x): 
     return x*2

list(map(two_times, [1, 2, 3, 4]))
결과: [2, 4, 6, 8]

map 함수의 결과를 리스트로 출력하기 위해 list 함수를 사용
(map 함수는 map 객체(리스트)를 리턴한다.)

💡lambda

  • lambda는 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 def를 사용해야 할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 함수를 한줄로 간결하게 만들 때 주로 쓰인다. lambda로 만든 함수는 return 명령어가 없어도 표현식의 결괏값을 리턴한다.
#사용법
함수명 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식

lambda를 사용하여 다음처럼 간략하게 만들 수 있다

#map,lambda 사용
list(map(lambda a: a*2, [1, 2, 3, 4]))
결과: [2, 4, 6, 8]
profile
with gratitude, optimism is sustainable

0개의 댓글