๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/Programming Language

[Python] *args๋ž€?/ zip๊ณผ ์—ฐ๊ด€์‹œ์ผœ ์ด์šฉํ•˜๊ธฐ

 

 >> ๐Ÿ’ป ํŒŒ์ด์ฌ(Python): *args/ zip์— ๋Œ€ํ•˜์—ฌ

 

 

 

 ์Šคํ„ฐ๋””ํ•˜๋ฉด์„œ ๋‚˜์™”๋˜ ์ด ์ฝ”๋“œ! *arr..? ์ €๊ฒŒ ๋ญ”๊ฐ€ ์‹ถ์—ˆ๋‹ค.

 ์ฐพ์•„๋ณด๋‹ˆ, ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ช‡ ๊ฐœ๋ฅผ ๋„ฃ์–ด์ค„์ง€ ๋ชจ๋ฅผ ๋•Œ์— ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ผ๊ณ  ํ•œ๋‹ค.

 ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ์ฐ์–ด๋ณด๋Š”๋ฐ...์ฐ์–ด๋ณผ์ˆ˜๋ก ์•„๋ฆฌ์†กํ•˜๊ณ  ๊ฐ์ด ์ž˜ ์•ˆ์žกํžŒ๋‹ค. ๋งŽ์ด ์จ๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค...

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

arr = [
    [1,2,3,4],
    [5,6,7,8],
    [1,2,3,4],
    [5,6,7,8]
]

print(*arr)
# [1,2,3,4] [5,6,7,8] [1,2,3,4] [5,6,7,8]

print(*arr[0])
# 1 2 3 4

 ์ผ๋ฐ˜์ ์œผ๋กœ ์ผ๋ฐ˜ ๋ฐฐ์—ด์— *์„ ๋ถ™์—ฌ ๋ฐ”๋กœ ์ฐ์–ด๋ณด๋ฉด, ๊ทธ ์•ˆ์˜ ์›์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ๋Œ๋ ค์ฃผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 *arr์€ ๋งจ ๊ฒ‰์˜ [ ] ์„ ํ’€์–ดํ—ค์ณ์„œ ์•ˆ์˜ ๋„ค ๊ฐœ์˜ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค.

 *arr[0]์˜ ๊ฒฝ์šฐ arr[0]์ด [1,2,3,4]์ด๋ฏ€๋กœ ์ด ์•ˆ์˜ ์›์†Œ๋“ค์„ ํ’€์–ดํ—ค์ณ 1 2 3 4๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

arr = [
    [1,2,3,4],
    [5,6,7,8],
    [1,2,3,4],
    [5,6,7,8]
]

def test(*args):
    print(args)
    print(*args)
    
test(arr)
# print(args) : ([[1,2,3,4], [5,6,7,8], [1,2,3,4], [5,6,7,8]])
# print(*args): [[1,2,3,4], [5,6,7,8], [1,2,3,4], [5,6,7,8]]

test(*arr)
# print(args) : ([1,2,3,4], [5,6,7,8], [1,2,3,4], [5,6,7,8])
# print(*args): [1,2,3,4] [5,6,7,8] [1,2,3,4] [5,6,7,8]

 

 ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ๋ฉ˜๋ถ•......

 ์ž. ์ž์„ธํžˆ ๋ณด๋ฉด ์ง์ž‘์ด ๊ฐ„๋‹ค!

 *args์˜ ๊ฒฝ์šฐ ํ’€์–ดํ—ค์นœ๋‹ค!๊ณ  ์ดํ•ด๋ฅผ ํ–ˆ๋Š”๋ฐ, ์ด๊ฒŒ ๊ทธ๋ƒฅ ํ’€์–ดํ—ค์น  ๋•Œ์™€ ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋  ๋•Œ๊ฐ€ ๋‹ค๋ฅด๋‹ค.

 ๊ทธ๋ƒฅ print(*args)ํ•  ๋•Œ๋Š” args๊ฐ€ ํ’€์–ดํ—ค์ณ์ ธ ๊ทธ ์•ˆ์˜ ์›์†Œ๋“ค์ด ๋‚˜ํƒ€๋‚˜์ง€๋งŒ,

 ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ๋  ๋•Œ๋Š” ํ’€์–ดํ—ค์ณ์ง„ ์›์†Œ๋“ค์ด ํŠœํ”Œ๋กœ ๋ฌถ์ด๊ฒŒ ๋œ๋‹ค!

 ํ•จ์ˆ˜ ์•ˆ์—์„œ ํ”„๋ฆฐํŠธ๋กœ *์„ ์“ฐ๋ฉด, ๊ทธ ๋ฐ”๊นฅ์˜ ํŠœํ”Œ์ด ๋ฒ—๊ฒจ์ ธ์„œ ํ”„๋ฆฐํŠธ๋œ๋‹ค.

 

 ๋”ฐ๋ผ์„œ ์œ„ ์ฝ”๋“œ์—์„œ test(arr)์˜ ๊ฒฝ์šฐ์—๋Š”, arr ํฐ ๋ฐฐ์—ด '์ „์ฒด'๊ฐ€ *args๋กœ ์ธํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋“ค์–ด์˜ค๋Š” ์—ฌ๋Ÿฌ ์ธ์ž๋“ค ์ค‘ 'ํ•˜๋‚˜'๋กœ ์ธ์‹๋˜๊ธฐ ๋•Œ๋ฌธ์—, ํฐ ํŠœํ”Œ ์•ˆ์— arr์ด ํ†ต์งธ๋กœ ํ•˜๋‚˜์˜ ์›์†Œ๋กœ์จ ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. 

 ๋งŒ์•ฝ test(arr, [0,0,0])์ด ๋œ๋‹ค๋ฉด print(args)์˜ ์ถœ๋ ฅ์€ ([[1,2,3,4], [5,6,7,8], [1,2,3,4], [5,6,7,8]], [0,0,0])์ด ๋  ๊ฒƒ์ด๋‹ค.

 

 test(*arr)์˜ ๊ฒฝ์šฐ๋Š” arr์„ ํ•œ ๋ฒˆ ํ’€์–ดํ—ค์นœ ์•ˆ์ชฝ์˜ ๋„ค ๊ฐœ์˜ ๋ฐฐ์—ด๋“ค์ด *args๊ฐ€ ๋ฐ›๋Š” ์—ฌ๋Ÿฌ ์ธ์ž๊ฐ€ ๋˜์–ด ๋„ค ๊ฐœ์˜ ์›์†Œ๋กœ์จ ํ•˜๋‚˜์˜ ํŠœํ”Œ ์•ˆ์— ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

 

 

 

 

arr = [
    [1,2,3,4],
    [5,6,7,8],
    [1,2,3,4],
    [5,6,7,8]
]

for col in zip(*arr):
    print(col)
   
# (1, 5, 1, 5)
# (2, 6, 2, 6)
# (3, 7, 3, 7)
# (4, 8, 4, 8)

print(list(zip(*arr)))
#[(1, 5, 1, 5), (2, 6, 2, 6), (3, 7, 3, 7), (4, 8, 4, 8)]

 

 ์œ„๊นŒ์ง€ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด ์ด์ œ zip์„ ์ด์šฉํ•ด์„œ ์–ด๋–ป๊ฒŒ ์—ด๋งŒ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐ„๋‹ค!

 *arr๋กœ ์ œ์ผ ๊ฒ‰ ๊ด„ํ˜ธ[]๋ฅผ ๋ฒ—๊ธด ๋‹ค์Œ, ๋‚จ์€ ์•ˆ์ชฝ ์›์†Œ, ์ฆ‰ ๋„ค ๊ฐœ์˜ ๋ฐฐ์—ด์„ zip()ํ•จ์ˆ˜์— ๋„ฃ์–ด์ค€๋‹ค.

 zip์€ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ๊ณผ ๊ฐ™์€ ์ž๋ฃŒํ˜•์—์„œ ๊ฐ™์€ ์œ„์น˜์— ์žˆ๋Š” ๊ฒƒ๋“ค๋ผ๋ฆฌ ํŠœํ”Œ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋ฏ€๋กœ, ํฌ์žฅ์ด ๋ฒ—๊ฒจ์ง€๊ณ  ๋‚จ์€ ๋„ค ๊ฐœ์˜ ๋ฐฐ์—ด์—์„œ ์œ„์น˜๊ฐ€ ๊ฐ™์€(์—ด์ด ๊ฐ™์€) ๊ฐ’๋“ค์ด ํŠœํ”Œ๋กœ ๋ฌถ์—ฌ ํ”„๋ฆฐํŠธ๋œ๋‹ค.

 

 

 

 

์ด๋ ‡๊ฒŒ ํŒŒ์ด์ฌ์— ํ•œ ๋ฐœ์ง ๊ฐ€๊นŒ์›Œ์ง„๋‹ค...

 

 

 

 

 

 

 

 

๐Ÿ’™ ๐Ÿ’™ ๐Ÿ’™

 

 

๏ผฐ๏ฝ๏ฝ“๏ฝ”๏ฝ…๏ฝ„ ๏ผข๏ฝ™ ๏ผณ๏ผก๏ผน

๐˜›๐˜ฉ๐˜ข๐˜ฏ๐˜ฌ๐˜ด ๐˜ง๐˜ฐ๐˜ณ ๐˜ณ๐˜ฆ๐˜ข๐˜ฅ๐˜ช๐˜ฏ๐˜จ