๐Ÿ“˜ Programming/Python

[Python3] ๋‚ด์žฅ ํ•จ์ˆ˜ zip ํ™œ์šฉ ์˜ˆ์ œ - 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ํ–‰๊ณผ ์—ด ๋’ค์ง‘๊ธฐ

ํ•œ์ฝ”๋”ฉ 2020. 10. 4. 00:36
728x90
728x90

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]]

 

 

728x90
๋ฐ˜์‘ํ˜•