본문 바로가기
Programing/Python

Python map() 함수 사용하여 List 요소를 변경하는 방법?

by 멍멍돌이야 2023. 3. 8.
반응형

How to Transform List Elements with Python map() Function

 

이 자습서에서는 목록과 함께 Python map() 함수를 사용하는 방법을 배웁니다.

 

1. Python map() 함수 소개

List(또는 Tuple)으로 작업할 때 종종 List의 요소를 변환하고 변환된 요소를 포함하는 새 List을 반환해야 합니다.

 

다음 보너스 List에 있는 모든 숫자를 두 배로 늘리고 싶다고 가정해 보십시오.

bonuses = [100, 200, 300]

이를 위해 for 루프를 사용하여 요소를 반복하고 각 요소를 두 배로 늘리고 다음과 같이 새 List에 추가할 수 있습니다.

bonuses = [100, 200, 300]

new_bonuses = []

for bonus in bonuses:
    new_bonuses.append(bonus*2)

print(new_bonuses)

Output:

[200, 400, 600]

Python은 map() 내장 함수를 사용하여 이러한 종류의 작업을 수행하는 더 좋은 방법을 제공합니다.

map() 함수는 List(또는 Tuple)의 모든 요소를 반복하고, 각각에 함수를 적용하고, 새 요소의 새 반복자를 반환합니다.

다음은 map() 함수의 기본 구문을 보여줍니다.

iterator = map(fn, list)

이 구문에서 fn은 List의 각 요소를 호출할 함수의 이름입니다.

사실, 리스트나 Tuple뿐만 아니라 어떤 이터러블도 map() 함수에 전달할 수 있습니다.

이전 예제로 돌아가서 map() 함수를 사용하려면 먼저 보너스를 두 배로 늘리는 함수를 정의한 다음 map() 함수를 다음과 같이 사용합니다.

def double(bonus):
    return bonus * 2


bonuses = [100, 200, 300]

iterator = map(double, bonuses)

또는 다음과 같은 람다 식을 사용하여 이 코드를 더 간결하게 만듭니다.

bonuses = [100, 200, 300]
iterator = map(lambda bonus: bonus*2, bonuses)

반복자가 있으면 for 루프를 사용하여 새 요소를 반복할 수 있습니다.

또는 list() 함수를 사용하여 반복자를 목록으로 변환할 수 있습니다.

bonuses = [100, 200, 300]
iterator = map(lambda bonus: bonus*2, bonuses)
print(list(iterator))

 

2. List이 있는 Python map() 함수의 더 많은 예

List과 함께 Python map() 함수를 사용하는 몇 가지 예를 더 살펴보겠습니다.

 

1) 문자열 List에 Python map() 함수 사용

다음 예제에서는 map() 함수를 사용하여 각 요소가 적절한 케이스로 변환되는 새 List을 반환합니다.

names = ['david', 'peter', 'jenifer']
new_names = map(lambda name: name.capitalize(), names)
print(list(new_names))

Output:

['David', 'Peter', 'Jenifer']

 

2) Python map() 함수를 Tuple List에 사용

Tuple List으로 표시된 다음 쇼핑 카트가 있다고 가정합니다.

carts = [['SmartPhone', 400],
         ['Tablet', 450],
         ['Laptop', 700]]

그리고 10% 세금 10%로 각 제품에 대한 세액을 계산해야 합니다. 또한 List에 있는 각 항목의 세 번째 요소에 세액을 추가해야 합니다.

반환 List은 다음과 같아야 합니다.

[['SmartPhone', 400, 40.0],
['Tablet', 450, 45.0],
['Laptop', 700, 70.0]]

이렇게 하려면 map() 함수를 사용하여 List의 새 요소를 만들고 다음과 같이 각각에 새 세액을 추가할 수 있습니다.

carts = [['SmartPhone', 400],
         ['Tablet', 450],
         ['Laptop', 700]]

TAX = 0.1
carts = map(lambda item: [item[0], item[1], item[1] * TAX], carts)

print(list(carts))

 

3. Summary

  • Python map()을 사용하여 List의 모든 항목에 대해 함수를 호출하고 반복자를 반환합니다.

 

 

 

 

 

refreance: https://www.pythontutorial.net/python-basics/python-map-list/
728x90
반응형

댓글