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