Python의 zip()

Python zip() 메서드 반복 가능한 컨테이너를 가져와 모든 컨테이너의 값이 매핑된 단일 반복자 개체를 반환합니다.

Python zip() 구문

그것은 익숙하다 단일 엔터티를 사용하여 사용할 수 있도록 여러 컨테이너의 유사한 인덱스를 매핑합니다.

구문: zip(*반복자)

매개변수: Python 반복 가능 항목 또는 컨테이너(목록, 문자열 등)
반환 값: 단일 반복자 객체를 반환합니다.

Python 예제의 zip()

목록이 있는 Python zip()

~ 안에 파이썬 , zip() 함수는 두 개 이상을 결합하는 데 사용됩니다. 기울기 (또는 다른 반복 가능 항목)을 단일 반복 가능 항목으로 변환합니다. 여기서 해당 위치의 요소는 함께 쌍을 이룹니다. 결과 반복 가능 항목에는 다음이 포함됩니다. 튜플 , 여기서 각 목록의 첫 번째 요소는 서로 쌍을 이루고, 각 목록의 두 번째 요소는 서로 쌍을 이루는 식입니다.

파이썬3




name> => [> 'Manjeet'> ,> 'Nikhil'> ,> 'Shambhavi'> ,> 'Astha'> ]> roll_no> => [> 4> ,> 1> ,> 3> ,> 2> ]> # using zip() to map values> mapped> => zip> (name, roll_no)> print> (> set> (mapped))>

산출

{('Nikhil', 1), ('Shambhavi', 3), ('Manjeet', 4), ('Astha', 2)} 

열거형 Python zip()

zip()과 낱낱이 세다() 여러 목록이나 튜플을 병렬로 처리하고 특정 목적을 위해 해당 인덱스에 액세스해야 하는 시나리오에 유용합니다.

파이썬3




names> => [> 'Mukesh'> ,> 'Roni'> ,> 'Chari'> ]> ages> => [> 24> ,> 50> ,> 18> ]> for> i, (name, age)> in> enumerate> (> zip> (names, ages)):> > print> (i, name, age)>

산출

0 Mukesh 24 1 Roni 50 2 Chari 18 

사전이 포함된 Python zip()

Python의 zip() 함수는 두 개 이상의 반복 가능한 항목을 결합하는 데 사용됩니다. 사전 입력 반복 가능 항목의 해당 요소가 튜플로 함께 쌍을 이루는 단일 반복 가능 항목으로 변환됩니다. 사전과 함께 zip()을 사용하면 사전에서의 위치에 따라 사전의 키와 값이 쌍을 이룹니다.

파이썬3




stocks> => [> 'GEEKS'> ,> 'For'> ,> 'geeks'> ]> prices> => [> 2175> ,> 1127> ,> 2750> ]> new_dict> => {stocks: prices> for> stocks,> > prices> in> zip> (stocks, prices)}> print> (new_dict)>

산출

{'GEEKS': 2175, 'For': 1127, 'geeks': 2750} 

Tuple을 사용한 Python zip()

튜플과 함께 사용하는 경우, 지퍼() 위치에 따라 튜플의 요소를 쌍으로 연결하여 작동합니다. 결과 이터러블에는 i번째 튜플이 각 입력 튜플의 i번째 요소를 포함하는 튜플이 포함됩니다.

파이썬3




tuple1> => (> 1> ,> 2> ,> 3> )> tuple2> => (> 'a'> ,> 'b'> ,> 'c'> )> zipped> => zip> (tuple1, tuple2)> result> => list> (zipped)> print> (result)>

산출:

[(1, 'a'), (2, 'b'), (3, 'c')] 

여러 Iterable을 사용하는 Python zip()

Python의 zip() 함수를 사용하여 두 개 이상의 반복 가능 항목을 결합할 수도 있습니다. 여러 반복 가능 항목을 입력으로 사용하고 튜플의 반복 가능 항목을 반환할 수 있습니다. 여기서 각 튜플에는 입력 반복 가능 항목의 해당 위치에 있는 요소가 포함되어 있습니다.

파이썬3




list1> => [> 1> ,> 2> ,> 3> ]> list2> => [> 'a'> ,> 'b'> ,> 'c'> ]> list3> => [> 'x'> ,> 'y'> ,> 'z'> ]> zipped> => zip> (list1, list2, list3)> result> => list> (zipped)> print> (result)>

산출

[(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')] 

크기가 다른 압축 목록

zip() 함수는 전달된 가장 작은 목록에 대해서만 반복합니다. 길이가 다른 목록이 제공되면 결과 조합은 전달된 가장 작은 목록만큼만 길어집니다. 다음 코드 예제에서는:

파이썬3




# Define lists for 'persons', 'genders', and a tuple for 'ages'> persons> => [> 'Chandler'> ,> 'Monica'> ,> 'Ross'> ,> 'Rachel'> ,> 'Joey'> ,> 'Phoebe'> ,> 'Joanna'> ]> genders> => [> 'Male'> ,> 'Female'> ,> 'Male'> ,> 'Female'> ,> 'Male'> ,> 'Female'> ,> 'Female'> ]> ages> => (> 35> ,> 36> ,> 38> ,> 34> )> # Create a zipped object combining the 'persons' and 'genders'> #lists along with the 'ages' tuple> zipped_result> => zip> (persons, genders, ages)> # Print the zipped object> print> (> 'Zipped result as a list:'> )> for> i> in> list> (zipped_result):> > print> (i)>

산출

Zipped result as a list: ('Chandler', 'Male', 35) ('Monica', 'Female', 36) ('Ross', 'Male', 38) ('Rachel', 'Female', 34) 

zip()을 사용하여 압축 풀기

압축을 푼다는 것은 압축된 값을 원래대로 다시 개별적으로 변환하는 것을 의미합니다. 이것은 다음의 도움으로 이루어집니다. * 운영자.

파이썬3




# initializing lists> name> => [> 'Manjeet'> ,> 'Nikhil'> ,> 'Shambhavi'> ,> 'Astha'> ]> roll_no> => [> 4> ,> 1> ,> 3> ,> 2> ]> marks> => [> 40> ,> 50> ,> 60> ,> 70> ]> # using zip() to map values> mapped> => zip> (name, roll_no, marks)> # converting values to print as list> mapped> => list> (mapped)> # printing resultant values> print> (> 'The zipped result is : '> , end> => '')> print> (mapped)> print> (> ' '> )> # unzipping values> namz, roll_noz, marksz> => zip> (> *> mapped)> print> (> 'The unzipped result: '> , end> => '')> # printing initial lists> print> (> 'The name list is : '> , end> => '')> print> (namz)> print> (> 'The roll_no list is : '> , end> => '')> print> (roll_noz)> print> (> 'The marks list is : '> , end> => '')> print> (marksz)>

산출

The zipped result is : [('Manjeet', 4, 40), ('Nikhil', 1, 50), ('Shambhavi', 3, 60), ('Astha', 2, 70)] The unzipped result: The name list is : ('Manjeet', 'Nikhil', 'Shambhavi', 'Astha') The roll_no list is : (4, 1, 3, 2) The marks list is : (40, 50, 60, 70) 

Python 루프와 함께 zip() 사용

zip을 사용하여 실행될 수 있는 응용 프로그램은 많이 있습니다. 학생 데이터베이스 또는 점수표 또는 그룹 매핑이 필요한 기타 유틸리티. 스코어카드의 간단한 예가 아래에 나와 있습니다.

파이썬3




# Python code to demonstrate the application of> # zip()> # initializing list of players.> players> => [> 'Sachin'> ,> 'Sehwag'> ,> 'Gambhir'> ,> 'Dravid'> ,> 'Raina'> ]> # initializing their scores> scores> => [> 100> ,> 15> ,> 17> ,> 28> ,> 43> ]> # printing players and scores.> for> pl, sc> in> zip> (players, scores):> > print> (> 'Player : %s Score : %d'> %> (pl, sc))>

산출

Player : Sachin Score : 100 Player : Sehwag Score : 15 Player : Gambhir Score : 17 Player : Dravid Score : 28 Player : Raina Score : 43