[Python] zip

guswl8280·2021년 8월 30일
0

Python

목록 보기
2/6

zip

zip(*iterable)은 동일한 개수로 이루어진 자료형을 묶어주는 역할을 하는 함수이다.

  • 배열의 행과 열을 바꿀때 사용할 수 있다.

예제

::두 리스트를 합치는 경우

num = [1,2,3]
char = ['c','h','u']
new_list = list(map(list, zip(num, char)))
print(new_list)

결과 :

  • list로 두 번 변경하는 이유는 zip과 map의 return값은 zip object, map object이기 때문이다.

✅unzip

num1, char2 = map(list,zip(*new_list))
print('num1',num1, '\nchar2', char2)

결과 :

예제

::2차원 배열로 이루어진 경우

num = [[1,2,3],[4,5,6],[7,8,9]]
new_list = list(map(list, zip(*num)))
print('zip',new_list)

결과 :

  • 배열의 행과 열을 바꿀수 있다.

✅new_list에서 다시 num으로 변경할 수 있다.(unzip)

print('unzip',list(map(list,zip(*new_list))))

결과 :

주의 사항

  • 인자의 길이가 다를 경우에는 가장 짧을 길이를 기준으로 묶이고 나머지는 버려진다.
    ex 1)
num = [1,2,3]
char = ['c','h']
new_list = list(map(list, zip(num, char)))
print('new_list',new_list)
num1, char2 = map(list,zip(*new_list))
print('num1',num1, '\nchar2', char2)

결과 :
ex 2)

num = [[1,2,3],[4,5,6],[7,8]]
new_list = list(map(list, zip(*num)))
print('zip',new_list)
print('unzip',list(map(list,zip(*new_list))))

결과 :


참고 사이트

https://cbw1030.tistory.com/216
https://www.daleseo.com/python-zip/

0개의 댓글