문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두 배한 원소를 가진 배열을 return 하도록 solution 함수를 완성해주세요.
제한사항
- -10,000 ≤ numbers의 원소 ≤ 10,000
- 1 ≤ numbers의 길이 ≤ 1,000
입출력 예
| numbers | result |
| [1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
| [1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
내 풀이
def solution(numbers):
return [ i * 2 for i in numbers ]
회고
- 리스트 컴프리헨션은 그래도 조금 알겠다. ㅎㅎ
- list(map(lambda x: x * 2, numbers)) 이렇게 쓸 수도 있군.
- lambda 함수, map 함수와도 친해지자.
lambda
- 이름이 없는 함수를 만들 수 있다
- lambda 매개변수 : 표현식 과 같이 쓴다
- return 키워드 없이도 자동으로 결과를 return
# before
>>> def hap(x, y):
... return x + y
...
>>> hap(10, 20)
30
# after
>>> lambda(x, y: x + y)(10, 20)
30
map
- 리스트의 요소를 지정된 함수로 처리
- map(함수, 리스트) 와 같이 쓴다
- 함수와 리스트를 인자로 받아 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 뒤, list 함수를 통해 그 결과를 새로운 리스트에 담는다
- 위의 예제에서는 정수 배열 [1, 2, 3, 4, 5]로부터 원소를 하나씩 꺼내와서 lambda 함수(x를 x*2로 변경)를 적용시킨 뒤 그 결과를 새로운 리스트에 담는 것
- 예: 실수값을 정수로 바꾼 뒤 새로운 리스트로 저장
>>> a = [1.2, 2.5, 3.7, 4.6]
>>> a = list(map(int, a))
>>> a
[1, 2, 3, 4]
'Programmers > Python' 카테고리의 다른 글
| [프로그래머스] [Python] 숨어있는 숫자의 덧셈 (1) (0) | 2022.11.11 |
|---|---|
| [프로그래머스] [Python] 모음 제거 (0) | 2022.11.11 |
| [프로그래머스] [Python] 특정 문자 제거하기 (0) | 2022.11.11 |
| [프로그래머스] [Python] 영어가 싫어요 (0) | 2022.11.11 |
| [프로그래머스] [Python] 아이스 아메리카노 (0) | 2022.11.10 |