250x250
반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

BEAT A SHOTGUN

[python] zip 과 * 본문

LEARNING

[python] zip 과 *

thovy 2022. 7. 28. 01:29
728x90
반응형
SMALL

zip*

짜집기 zip

zip 은 인자를 짜집기해준다.

ex1

list1 = ['cat', 'dog', 'bear']
list2 = ['meow', 'mung', 'k_ang']

print(list(zip(list1, list2)))

실행하면

[('cat', 'meow'), ('dog', 'mung'), ('bear', 'k_ang')]

순서대로 하나 하나 꺼내 짜집기 해준다.

ex2

list = [[0, 3, 1, 2], [1, 1, 3, 4], [0, 3, 1, 3], [3, 0, 3, 1]]
ziplist = list(zip(*list))

print('ziplist' + ziplist)

실행하면

ziplist = [(0, 1, 0, 3), (3, 1, 3, 0), (1, 3, 1, 3), (2, 4, 3, 1)]

가 나온다.
근데 왜 () 가 되는건지 모르겠네.

아무튼 그렇다.
근데 이렇게 할 수 있는 건 짝이 맞아서 그런 거 아닐까?
흠. 짝이 안 맞아도 작동은 되네

# list2 의 'k_ang' 을 지움
list2 = ['meow', 'mung']

# 실행하면
[('cat', 'meow'), ('dog', 'mung')]

*

*list 를 하지 않으면

이차원의 행렬 중 첫번째 행렬인 [0, 3, 1, 2], 를 하나의 변수?로 생각해서 행에 넣고,
결국

ziplist = [([0, 3, 1, 2],), ([1, 1, 3, 4],), ([0, 3, 1, 3],), ([3, 0, 3, 1],)]

이 모양이 된다.

* 를 하게 되면
요소 하나하나를 변수로 보게 된다고 한다. 그래서 제대로 zip 할 수 있는 거지.

list

list 를 하지 않으면,

<zip object at 0x7f6bbfc56100>

이런 식으로 주소가 나온다.

728x90
반응형
LIST
Comments