Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python Map 함수:단계별 가이드

Python map() 함수는 목록이나 집합과 같은 컬렉션의 각 항목에 대해 함수를 실행합니다. map() 함수는 함수와 함수가 작동할 객체를 인수로 받아들입니다.


Python에서 항목 목록으로 작업할 때 각 항목에 대해 특정 기능을 수행할 수 있습니다.

이것이 파이썬 내장 함수 map()이 들어오는 곳입니다. 파이썬 지도 함수는 목록과 같은 반복 가능한 객체 내의 모든 요소에 대해 함수를 실행하고 지도 객체를 반환합니다.

이 자습서에서는 일련의 예를 사용하여 map()을 사용하는 방법에 대해 설명합니다. 파이썬에서 함수.

Python 반복 가능한 객체

반복 가능한 객체는 셀 수 있는 값을 포함하고 순회할 수 있는 항목입니다. 목록, 사전, 튜플 및 집합은 여러 값을 포함할 수 있고 순회할 수 있으므로 Python에서 모두 반복 가능한 개체입니다.

저장하려는 학생 이름 목록이 있다고 가정해 보겠습니다. 이러한 이름을 여러 Python 변수에 저장하는 대신 값을 저장할 배열을 선언할 수 있습니다.

students = ["Lucy", "Bill", "Graham", "Tommy", "Leslie"]

students 변수는 반복 가능한 객체인 목록을 포함합니다. 이는 목록의 항목을 순회할 수 있음을 의미합니다.

Python 맵 함수 구문

map() 함수는 목록의 각 요소를 전달하고 각 요소에 대해 함수를 실행합니다. map()은 파이썬에 내장되어 있습니다. 즉, map() 메서드를 사용하기 위해 라이브러리를 가져올 필요가 없습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

파이썬 지도() 반복 가능한 객체의 여러 요소에 특정 함수를 적용하는 데 사용할 수 있는 고차 함수입니다. Python map() 구문 기능은 다음과 같습니다.

map(function, iterable)

첫 번째 인수 map() 함수는 함수입니다. 이것은 iterable의 모든 항목에서 실행될 함수입니다. 반복 가능 목록, 튜플, 사전 또는 집합과 같이 매핑될 개체입니다.

Python에서 Map 함수를 사용하는 방법

전체 학생 명단을 작성하는 임무를 맡은 학교의 관리자라고 가정해 보겠습니다.

우리는 학생 이름 옆에 각 학생의 수업 성적이 나열된 학생 이름 목록을 인쇄하기로 결정했습니다. 이렇게 하면 두 학년의 두 학생이 같은 이름을 사용하는 경우 혼동을 방지할 수 있습니다.

이것은 Python map() 함수의 완벽한 응용 프로그램입니다. 함수를 실행하려는 iterable이 있습니다. 이 기능은 학생의 이름을 해당 학년과 병합합니다. 다음은 학생의 이름을 학년 수준과 병합하는 데 사용할 수 있는 프로그램입니다.

def mergeNamesAndGrades(name):
	return name + " First Grade"

students = ["Lucy", "Bill", "Graham", "Tommy", "Leslie"]
student_roster = map(mergeNamesAndGrades, students)

처음 두 줄에서 mergeNamesAndGrades라는 Python 함수를 선언합니다. . 이 기능은 각 학생의 이름을 1학년과 결합합니다. .

그런 다음 다음 줄에서 우리 학교의 학생 목록을 정의합니다. 다음은 5명의 학생입니다.

지도() 기능이 student_roster의 콘텐츠에 적용됩니다. 파이썬 변수. map() 함수는 함수(이 경우 mergeNamesAndGrades)와 반복 가능한 객체(학생)의 두 인수를 받습니다.

map() 메서드는 mergeNamesAndGrades() 함수를 목록의 각 학생에게 적용합니다.

Python 지도를 목록으로 변환

그러나 우리 프로그램은 아직 완성되지 않았습니다. 지도() 함수는 전체 목록이 아니라 매핑된 개체를 반환합니다. student_roster를 인쇄하면 바로 지금, 우리 코드는 다음과 같은 매핑된 객체를 반환할 것입니다:

<map object at 0x7f2c74103890>

이 출력은 map() 때문에 생성되었습니다. 함수는 목록이 아닌 자체 사용자 정의 개체를 반환합니다. 따라서 학생 이름 목록을 인쇄하려면 student_roster를 변환해야 합니다. 목록에 대한 변수. 이 작업을 수행하는 데 사용할 수 있는 코드는 다음과 같습니다.

print(list(student_roster))

코드는 다음 Python 목록을 반환합니다.

['Lucy First Grade', 'Bill First Grade', 'Graham First Grade', 'Tommy First Grade', 'Leslie First Grade']

다른 예를 살펴보겠습니다. 모든 학생의 이름과 학년을 학생 명단의 대문자로 변환하고 싶다고 가정해 보겠습니다. 다음 코드를 사용하여 학생 이름과 성적의 대소문자를 변경할 수 있습니다.

def changeCase(name):
	return name.upper()

student_roster = ['Lucy First Grade', 'Bill First Grade', 'Graham First Grade', 'Tommy First Grade', 'Leslie First Grade']
final_student_roster = map(changeCase, student_roster)
print(list(final_student_roster))

코드는 반복할 수 있는 목록을 반환합니다.

['LUCY FIRST GRADE', 'BILL FIRST GRADE', 'GRAHAM FIRST GRADE', 'TOMMY FIRST GRADE', 'LESLIE FIRST GRADE']

이 예에서는 changeCase라는 함수를 정의했습니다. 이 함수는 각 학생의 이름을 대문자로 변경했습니다. Python upper()를 사용했습니다. 각 이름의 대소문자를 변환하는 함수입니다.

우리 프로그램은 map()을 사용했습니다. changeCase()를 호출하는 함수 반복 가능한 student_roster의 각 개체에 대해 . 마지막으로, 우리 프로그램은 수정된 학생 이름 목록을 대문자로 반환했습니다.

Lambda를 사용한 Python 맵 함수

파이썬 map() 함수는 람다와 함께 사용할 수 있습니다. 코드를 보다 효율적으로 만드는 기능입니다. 위의 예에서 우리는 iterable을 특정 방식으로 변경하는 새로운 함수를 선언했습니다.

그러나 반복 가능한 객체에 대해 한 번만 작업을 수행하려는 경우 새 함수를 선언할 필요가 없습니다. 대신 작은 익명 함수인 Python 람다 함수를 사용할 수 있습니다.

Lambda 함수는 map()과 함께 사용할 수 있습니다. 새로운 함수를 정의하고 싶지 않은 작은 함수의 경우.

람다 함수는 일반 함수보다 간결하기 때문에 가능하면 사용하려고 노력해야 합니다. 간단한 함수에 람다 함수를 사용하면 코드 가독성을 높이는 데 도움이 됩니다.

다음은 위에서 했던 것처럼 학생 이름 목록의 대소문자를 대문자로 변환하는 데 사용되는 람다의 예입니다.

student_roster = ['Lucy First Grade', 'Bill First Grade', 'Graham First Grade', 'Tommy First Grade', 'Leslie First Grade']
final_student_roster = map(lambda s: s.upper(), student_roster)
print(list(final_student_roster))

우리는 학생 이름의 대소문자를 대문자로 변환하는 새로운 함수를 선언하지 않았습니다. 대신 lambda s:s.upper()를 사용했습니다. , 이것은 학생 이름의 대소문자를 변환하는 작고 익명의 함수입니다.

코드는 다음을 반환합니다.

['LUCY FIRST GRADE', 'BILL FIRST GRADE', 'GRAHAM FIRST GRADE', 'TOMMY FIRST GRADE', 'LESLIE FIRST GRADE']

결론

파이썬 map() function은 iterable 객체 내의 모든 요소에 특정 함수를 적용하는 데 사용할 수 있습니다. 예를 들어, map()을 사용하여 문자열 목록의 대소문자를 대문자로 변환할 수 있습니다. 또는 map() 함수를 사용하여 숫자 목록을 특정 양만큼 곱할 수 있습니다.

이 튜토리얼에서는 map()을 사용하는 방법에 대해 논의했습니다. Python에서 iterable 객체 내의 모든 요소에 함수를 적용합니다. 또한 map()과 함께 Python의 람다 함수를 사용하는 방법에 대해서도 논의했습니다. 보다 효율적인 코드를 생성합니다.

이제 map() 사용을 시작하는 데 필요한 Python 지식을 갖추었습니다. 프로처럼.