zip ํจ์
mylist = [ 1,2,3 ]
new_list = [ 40, 50, 60 ]
for i in zip(mylist, new_list):
print (i)
(1, 40)
(2, 50)
(3, 60)
๋ฆฌ์คํธ ๋ ๊ฐ๋ฅผ ํ๋๋ก ๋ฌถ์ด ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๋ค. zip(์๋ฃ๊ตฌ์กฐ, ์๋ฃ๊ตฌ์กฐ) ํํ๋ก ์ฌ์ฉํ๋ค.
๋ฌผ๋ก ํด๋น ์๋ฃ๊ตฌ์กฐ๋ iterable์ด๋ฏ๋ก set, list์ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ง ๊ฐ๋ฅํ๋ค.
list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
answer = []
for i, j, k in zip(list1, list2, list3):
print( i + j + k )
์์ ๊ฐ์ด 2๊ฐ ๋ฟ๋ง ์๋๋ผ ๊ทธ ์ด์์ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ฌถ์ด์๋ ๊ฐ๋ฅํ๋ค.
์์ ์์ ๋ list1, list2, list3์ ์์๋ค์ ํ๋์ฉ ๋ฝ์ ํฉ์ฐํ๋ ์์ ์ด๋ค. 493, 124, 66, 305๊ฐ ์ถ๋ ฅ๋๋ค.
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
๋ํ, ๋ฆฌ์คํธ 2๊ฐ๋ฅผ zip์ ์ฌ์ฉํ์ฌ ๋ฌถ๊ณ , dict๋ก ๋ณํํ์ฌ ์ฌ์ ํํ(dictionary)๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๊ธฐ์กด dict์ ๊ฐ์ด ์ถ๋ ฅํ๋ฉด {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'} ํํ๋ก ์ถ๋ ฅ๋๋ค.
zip ํจ์ ํ์ฉ ์์ - 2์ฐจ์ ๋ฆฌ์คํธ ํ๊ณผ ์ด ๋ค์ง๊ธฐ
mylist = [[1,2,3,4], [5,6,7,8], [9,10,11,12],[13,14,15,16]]
def solution(mylist):
answer = []
s = len(mylist)
for i in range(s):
answer.append([])
for i in range(s):
for j in range(s):
answer[i].append(mylist[j][i])
return answer
print (solution(mylist))
์์ ๊ฐ์ ์์ ๋ฅผ zipํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฃผ ๊น๋ํ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ๋ค. ์ฐ์ ์์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
[[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
mylist = [[1,2,3,4], [5,6,7,8], [9,10,11,12],[13,14,15,16]]
def solution(mylist):
answer = list(map(list, zip(*mylist)))
return answer
print (solution(mylist))
zipํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊น๋ํ ์์ค์ฝ๋๋ฅผ ์์ฑํ์๋ค. answer ๋ฆฌ์คํธ๋ฅผ zipํจ์๋ฅผ ์ฌ์ฉํ์ฌ mylist์ ๊ฐ ํ์ ์์๋ฅผ ๋ฌถ๋๋ค. ์ดํดํ๊ธฐ ์ฝ๊ฒ
[1,2,3,4]
[5,6,7,8]
[9,10,11,12]
[13,14,15,16]
์์์ *mylist๋ผ๋ ๊ฒ์ ๊ฐ ํ์ ๋ํด์ ๊ฐ์ ์์น์ ๋ํด ์์๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค. ๋ฐ๋ผ์ zipํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ฒ์์๋ 1, 5, 9, 13์ ์ซ์๋ฅผ ๋ฌถ๋๋ค. ๊ทธ ๋ค์์๋ 2, 6, 10, 14๋ฅผ ๋ฌถ์ด์ค๋ค...
์ด๋ ๊ฒ ๋ฌถ์ธ ์ซ์๋ค์ mapํํ๋ก list์ ์์๋ก ์ ์ฅํ๋ค.
list = [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]