>> ๐ป ํ์ด์ฌ(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์ ๋ฆฌ์คํธ๋ ํํ๊ณผ ๊ฐ์ ์๋ฃํ์์ ๊ฐ์ ์์น์ ์๋ ๊ฒ๋ค๋ผ๋ฆฌ ํํ๋ก ๋ฌถ์ด์ฃผ๋ ์ญํ ์ ํ๋ฏ๋ก, ํฌ์ฅ์ด ๋ฒ๊ฒจ์ง๊ณ ๋จ์ ๋ค ๊ฐ์ ๋ฐฐ์ด์์ ์์น๊ฐ ๊ฐ์(์ด์ด ๊ฐ์) ๊ฐ๋ค์ด ํํ๋ก ๋ฌถ์ฌ ํ๋ฆฐํธ๋๋ค.
์ด๋ ๊ฒ ํ์ด์ฌ์ ํ ๋ฐ์ง ๊ฐ๊น์์ง๋ค...
๐ ๐ ๐
๏ผฐ๏ฝ๏ฝ๏ฝ๏ฝ ๏ฝ ๏ผข๏ฝ ๏ผณ๏ผก๏ผน
๐๐ฉ๐ข๐ฏ๐ฌ๐ด ๐ง๐ฐ๐ณ ๐ณ๐ฆ๐ข๐ฅ๐ช๐ฏ๐จ
'Programming > Programming Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA์ ๋ฐฐ์ด ์์ฑ, ๋ณต์ฌ, ์ถ๋ ฅ (0) | 2021.07.20 |
---|---|
JAVA์ ๋ฌธ์์ด ์ฒ๋ฆฌ(String): ์ ๋ ฅํ๊ธฐ, ํ ์์ฉ ์ฝ๊ธฐ, ์๋ฅด๊ธฐ (0) | 2021.07.15 |