์ฌ๋ฌ๊ฐ์ง ์ํฉ์์ ๋ฆฌ์คํธ๋ผ๋ฆฌ์ ์ฐ์ฐ์ด ํ์ํ ๋๊ฐ ์๋ค.
ํด๋น ๊ธ์ ๋ฆฌ์คํธ ๋ผ๋ฆฌ์ ๋ํ๊ธฐ, ๋นผ๊ธฐ, ๊ณฑํ๊ธฐ ๋ฑ์ ์ฐ์ฐ์ ์ํ 3๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์๋ค.
๋ชฉ์ฐจ
1-1) 1์ฐจ์ ๋ฆฌ์คํธ
1-2) 2์ฐจ์ ๋ฆฌ์คํธ
1-1) 1์ฐจ์ ๋ฆฌ์คํธ
1-2) 2์ฐจ์ ๋ฆฌ์คํธ
๋ด์ฅํจ์ zip
zip์ ์ฌ๋ฌ ๋ฐฐ์ด์ ํํ๋ก ๋ฌถ์ด์ฃผ๋ ์ฐ์ฐ์ ํด์ค๋ค.
ํ์ด์ฌ ๋ด์ฅํจ์์ด๋ฏ๋ก ๋ฐ๋ก ๋ชจ๋์ importํด์ค ํ์๋ ์๋ค.
1์ฐจ์ ๋ฆฌ์คํธ
๋ค์๊ณผ ๊ฐ์ด ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ 1์ฐจ์ ๋ฐฐ์ด(๋ฆฌ์คํธ)๊ฐ a, b๊ฐ ์์ ๋, ๋์ผํ ์์น์ ์๋ ์์๋ฅผ ํํ๋ก ๋ฌถ์ด ๋ฆฌํดํ๋ค.
iterableํ ๊ฒฐ๊ณผ(zip ๊ฐ์ฒด)๋ก ๋ฆฌํดํ๋ฏ๋ก ๊ผญ for๋ฌธ์ด๋ iterator์ ํจ๊ป ์ฌ์ฉ๋์ด์ผํ๋ค.
* iterable, iterator ๊ฐ๋ ์ ์ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ๊ฒ์ํ์ฌ ์ฐพ์๋ณด๋ ๊ฒ์ ๊ถ์ฅ
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 0]
print([i for i in zip(a, b)])
#๊ฒฐ๊ณผ
#[(1, 6), (2, 7), (3, 8), (4, 9), (5, 0)]
ํด๋น ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํ์ฌ ๋ ๊ฐ์ ๋ํ ์ฐ์ฐ์ ์งํํ๋ฉด ๋๊ฒ ๋ค!
# ๋ ๋ฐฐ์ด์ ๊ฐ ์๋ฆฌ๊ฐ๋ผ๋ฆฌ ๊ณฑํ ๊ฐ์ ์ดํฉ ๊ตฌํ๊ธฐ
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 0]
result = [i*j for i, j in zip(a, b)]
print("result : ", result, ", sum : ", sum(result))
#๊ฒฐ๊ณผ
#result : [6, 14, 24, 36, 0], sum : 80
2์ฐจ์ ๋ฆฌ์คํธ
๊ทธ๋ ๋ค๋ฉด 2์ฐจ์ ๋ฆฌ์คํธ์์ zip์ ์ด๋ป๊ฒ ๋์ํ ๊น? 1์ฐจ์ ๋ฐฐ์ด๊ณผ ๊ฐ์ด for๋ฌธ ํ๋๋ก ๊ฐ๋ฅํ ๊น?
a = [[1, 2], [2, 3]]
b = [[3, 4], [5, 6]]
#๋จ์ zip
print([i for i in zip(a, b)])
#๊ฒฐ๊ณผ
#[([1, 2], [3, 4]), ([2, 3], [5, 6])]
๊ทธ๋ ์ง ์๋ค. 2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ ์์๊ฐ ์ฐ์ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ 2์ค์ผ๋ก for๋ฌธ์ด ํ์ํ๋ค
a = [[1, 2], [2, 3]]
b = [[3, 4], [5, 6]]
result = []
#๊ฐ ์๋ฆฌ ์์๋ฅผ ๊ณฑํ ๊ฒ๋ค์ ์ด ํฉ
for i in range(len(a)):
temp = [i * j for i, j in zip(a[i], b[i])]
result.append(temp)
print("result : ", result)
# result : [[3, 8], [10, 18]]
[์ฐ์ต๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/12950
numpy ๋ชจ๋
numpy ๋ชจ๋์ multiply ํจ์๋ฅผ ์ด์ฉํด์ ๋ ๋ฆฌ์คํธ ์ฌ์ด์ ์ฐ์ฐ์ ์ํํ ์ ์๋ค.
๋ค์ ํจ์๋ฅผ ์ด์ฉํ์ฌ add(), substract(), multiply(), divide() ๊ฐ๊ฐ ๋ํ๊ธฐ, ๋นผ๊ธฐ, ๊ณฑํ๊ธฐ, ๋๋๊ธฐ๋ฅผ ์ํํ ์ ์๋ค.
add() ํจ์ ๋๋ ๋ํ๊ธฐ ์ฐ์ฐ์(+)๋ฅผ ์ฌ์ฉํด์ ๋ฆฌ์คํธ๋ผ๋ฆฌ ๋ํ๋ค.
import numpy
a = numpy.array([1,2,3])
b = numpy.array([4,5,6])
print(a + b) # print(numpy(a, b))
#[5 7 9]
substract() ๋๋ ๋ง์ด๋์ค ์ฐ์ฐ์(-)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ผ๋ฆฌ ๋บ๋ค.
import numpy
a = numpy.array([1, 2, 3])
b = numpy.array([4, 5, 6])
print(numpy.subtract(a, b)) # print(a - b)
#[-3 -3 -3]
multiply() ๋๋ ๊ณฑํ๊ธฐ ์ฐ์ฐ์(*)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ผ๋ฌ ๊ณฑํ๋ค.
import numpy
a = numpy.array([1, 2, 3])
b = numpy.array([4, 5, 6])
print(numpy.multiply(a, b)) # print(a * b)
#[ 4 10 18]
divide() ๋๋ ๋๋๊ธฐ ์ฐ์ฐ์(/)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ผ๋ฆฌ ๋๋๋ค.
import numpy
a = numpy.array([1, 2, 3])
b = numpy.array([4, 5, 6])
print(numpy.divide(a, b)) # print(a / b)
#[0.25 0.4 0.5 ]
์ด ์ธ์๋ numpy๋ฅผ ์ด์ฉํ ๋ค์ํ ๋ฆฌ์คํธ ์ฐ์ฐ์ ๊ณต์ ์ฌ์ดํธ๋ ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ค์ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋๋ค
๋ด์ฅ ํจ์ map
map ํจ์๋ ์ซ์ํ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ ์ฃผ๋ก ์ฌ์ฉํ์ํ ๋ฐ ๋ฆฌ์คํธ ์ฐ์ฐ์ผ๋ก๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
map(function, iterable) ํํ๋ก, iterable์๋ ๊ผผ๋ง(,)๋ก ์ฌ๋ฌ๊ฐ์ iterable ์ฆ ํํ์ด๋ ๋ฆฌ์คํธ๊ฐ ์๋ฆฌํ ์ ์์ต๋๋ค.
1์ฐจ์ ๋ฆฌ์คํธ
a = [1, 2, 3]
b = [4, 5, 6]
print(list(map(lambda x, y: x*y, a, b)))
#[4, 10, 18]
lambda๋ lambda <๋งค๊ฐ๋ณ์> : <๊ณ์ฐ> ํ์์ผ๋ก ์ฌ์ฉ๋๊ณ ์ฃผ๋ก sort์ key ์ต์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
์ ์์๋ก๋ x, y ๋๊ฐ์ ๋ณ์๋ฅผ ๋ฐ์์ x*y ์ฐ์ฐ์ ์ํํ๋ ํจ์์ a, b ๋ฆฌ์คํธ๋ฅผ ๋ฃ์์ผ๋ก์จ ๊ฐ ์์๋ค์ ๋๋ฉฐ ์ฐ์ฐ์ ์ํํฉ๋๋ค.
map ํจ์๋ map ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ฏ๋ก ๋ฆฌ์คํธ๋ ํํ๋ก ๋ณํํ์ฌ ์ถ๋ ฅํ์ฌ์ผํฉ๋๋ค.
2์ฐจ์ ๋ฆฌ์คํธ
zip ํจ์ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก 2์ฐจ์ ๋ฐฐ์ด์์๋ for๋ฌธ์ ์ด์ฉํ์ฌ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ๋์๊ฐ๋ฉฐ ์ฐ์ฐํ๋ค.
a = [[1, 2], [3, 4]]
b = [[5, 6], [7, 8]]
result = []
for i in range(len(a)):
result.append(list(map(lambda x, y: x*y, a[i], b[i])))
print(result)
#[[5, 12], [21, 32]]
๐ก๊ถ๊ธํ ์ฌํญ์ด๋ ๋ฌธ์ ์ ์์ผ๋ฉด ์ฃผ์ ๋ง๊ณ ๋๊ธ ๋ฌ์์ฃผ์ธ์! ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค
REFERENCE
https://www.delftstack.com/ko/howto/python/multiply-two-lists-python/
https://blockdmask.tistory.com/531
'๐Language > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํจ์ ์์ ํจ์ | ๋ด๋ถ ํจ์ - ์ธ๋ถ ํจ์ (0) | 2023.02.18 |
---|---|
[Python] ์ ๋ ฅ ์ฒ๋ฆฌ ์ ๋ฆฌ | input | readline | ๊ณ์ ์ ๋ ฅ ๋ฐ๊ธฐ | ๋ฆฌ์คํธ๋ก ์ ๋ ฅ๋ฐ๊ธฐ (0) | 2023.02.05 |