Python의 map() 및 zip() 작업 방법 소개

高洛峰
풀어 주다: 2017-03-07 16:11:03
원래의
1707명이 탐색했습니다.

map()의 경우 프로토타입은 map(함수, 시퀀스)이며 시퀀스의 각 요소에 대해 함수 작업을 수행합니다.

예를 들어 앞선 a, b, c = map(int, raw_input().split())은 입력된 a, b, c를 정수로 변환한다는 의미입니다. 또 다른 예:

a = ['1','2','3','4']
print map(list,a)
print map(int,a)
로그인 후 복사

첫 번째 맵은 목록 a의 각 요소를 목록으로 변환하고, 두 번째 맵은 a의 각 요소를 정수로 변환합니다.
zip()의 경우 프로토타입은 zip(*list)이고 list는 목록이며 zip(*list)는 다음과 같은 튜플을 반환합니다.

list = [[1,2,3],[4,5,6],[7,8,9]]
t = zip(*list)
print t
로그인 후 복사

출력: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

x = [1,2,3,4,5]
y = [6,7,8,9,10]
a = zip(x,y)
print a
로그인 후 복사

출력: [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

다음은 몇 가지 추가 사항입니다.

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> [sum(x) for x in list] 
[3, 8] 
>>> map(sum,list) 
[3, 8]
로그인 후 복사

각 열의 합계를 얻으려면 먼저 zip(*list)을 사용하여 목록의 압축을 풀고 튜플 목록을 가져와야 합니다. , i번째 요소 그룹은 각 행의 i번째 요소를 포함합니다:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> zip(*list) 
[(0, 3), (1, 1), (2, 4)] 
>>> [sum(x) for x in zip(*list)] 
[3, 2, 6] 
>>> map(sum,zip(*list)) 
[3, 2, 6]
로그인 후 복사

다음 예는 zip 및 unzip 방법에 대한 것입니다(실제로는 zip과 *는 함께 사용됩니다) work :

[python] 
>>> x=[1,2,3] 
>>> y=[4,5,6] 
>>> zipped = zip(x,y) 
>>> zipped 
[(1, 4), (2, 5), (3, 6)] 
>>> x2,y2=zip(*zipped) 
>>> x2 
(1, 2, 3) 
>>> y2 
(4, 5, 6) 
>>> x3,y3=map(list,zip(*zipped)) 
>>> x3 
[1, 2, 3] 
>>> y3 
[4, 5, 6]
로그인 후 복사


map() 및 *의 작업 방법을 소개하는 관련 기사를 더 보려면 Python에서 zip()을 사용하려면 PHP 중국어 웹사이트를 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿