zip() 함수는 iterable(이터러블 : 반복 가능한 것들)을 여러개 받고, 원소 1개씩을 뽑아 tuple(튜플)로 합친다.
이런식으로 li1 과 li2 를 튜플로 묶을 수 있다.
그냥 실행하면 반복자를 반환해서 반복자의 주소가 나온다.
list나 tuple을 활용하여 이런식으로 반환값을 내보낼 수 있다.
짧은 자료형 기준으로 만들어 진다.
li1 = [1,2,3,4,5,7]
li2 = ['a','b','c']
print(zip(li1, li2))
print(list(zip(li1, li2)))
print(tuple(zip(li1, li2)))
<zip object at 0x7fd06e3f7500>
[(1, 'a'), (2, 'b'), (3, 'c')]
((1, 'a'), (2, 'b'), (3, 'c'))
for문을 사용해서 값을 내보낼 수 있다.
2개 이상의 인자도 받을 수 있다.
li1 = [1,2,3,4,5,7]
li2 = ['a','b','c']
for a,b in zip(li1, li2):
print(a,b)
for pair in zip(li1, li2):
print(pair)
for a,b,c in zip('12345', 'abcde','ㄱㄴㄷㄹㅁ'):
print(a,b,c)
1 a
2 b
3 c
(1, 'a')
(2, 'b')
(3, 'c')
1 a ㄱ
2 b ㄴ
3 c ㄷ
4 d ㄹ
5 e ㅁ
이런방식으로 딕셔너리로 만들 수 있다.
keys = [1,2,3]
values = ['a','b','c']
print(dict(zip(keys,values)))
{1: 'a', 2: 'b', 3: 'c'}