구현훈련하기 - 배열 두배 만들기
def solution(numbers):
return [num*2 for num in numbers]
numbers 리스트의 각 원소를 num이라 했을때
for문을 사용해 모든 num에 2를 곱하고 반환한다.
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))
파이썬 내장함수 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는 함수를 생성할 때 사용하는 예약어로
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]