매핑
Coddy의 Python 리스트 컴프리헨션 코스 레슨 — 9개 중 2번째.
숫자 리스트가 주어졌을 때, 모든 숫자의 세제곱 값을 담는 리스트를 계산하고 싶다고 가정해 봅시다.
nums = [1, 4, 6, 12, 3]
cubes = []
for n in nums:
cubes.append(n ** 3)
print(cubes) # [1 , 16, 36, 144, 9]리스트 컴프리헨션(list comprehension)을 사용하면 이를 한 줄로 처리할 수 있습니다.
nums = [1, 4, 6, 12, 3]
cubes = [n ** 3 for n in nums]
print(cubes) # [1 , 16, 36, 144, 9]이러한 종류의 연산을 매핑(mapping)이라고 합니다. 즉, 기존 리스트의 각 요소에 함수를 적용하고 그 결과를 포함하는 새 리스트를 생성하는 것입니다.
구문은 다음과 같습니다.
lst = [expression for item in iterable]lst는 리스트 컴프리헨션 연산의 결과로 생성된 새 리스트를 담게 됩니다.
챌린지
쉬움숫자 리스트 nums가 주어질 때, 각 요소를 x라고 가정하고 다음 식을 사용하여 각 요소가 계산된 새로운 리스트를 구하세요: <strong>x<sup>3</sup>+2*x<sup>2</sup>+5</strong>
새로운 리스트를 new_nums라는 이름의 변수에 저장하세요.
직접 해보기
nums = eval(input()) # 이 줄을 수정하지 마세요