Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155) N
    • ๐Ÿ’ปBackend (1) N
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ตRC
  • ํ† ์ต์ ์ˆ˜
  • ์ฝ”ํ…Œ
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ํ† ์ต๋…ํ•™
  • Python
  • ๊ตฌํ˜„
  • BFS
  • ์ •๋ ฌ
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • sort
  • ๋ฆฌ์ŠคํŠธ
  • ๋ฐฑ์ค€
  • greedy algorithm
  • ๊ทธ๋ฆฌ๋””
  • UNION ALL
  • BaekJoon
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • Union
  • ํ† ์ต๊ณต๋ถ€
  • mysql
  • ์˜ค๋ธ”์™„
  • ํ† ์ต๊ธฐ์ถœ
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ๋‚ด์žฅํ•จ์ˆ˜
  • ํ† ์ต์‹œํ—˜
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ์™„์ „ํƒ์ƒ‰
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“‚Language/Python

[Python] List๋ผ๋ฆฌ ์—ฐ์‚ฐ | zip | numpy | map

2023. 3. 28. 17:44

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ƒํ™ฉ์—์„œ ๋ฆฌ์ŠคํŠธ๋ผ๋ฆฌ์˜ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.

ํ•ด๋‹น ๊ธ€์€ ๋ฆฌ์ŠคํŠธ ๋ผ๋ฆฌ์˜ ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ, ๊ณฑํ•˜๊ธฐ ๋“ฑ์˜ ์—ฐ์‚ฐ์„ ์œ„ํ•œ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€๋‹ค.

 

 

๋ชฉ์ฐจ

1)  ๋‚ด์žฅํ•จ์ˆ˜ zip

   1-1)  1์ฐจ์› ๋ฆฌ์ŠคํŠธ
   1-2)  2์ฐจ์› ๋ฆฌ์ŠคํŠธ

2)  numpy ๋ชจ๋“ˆ


3)  ๋‚ด์žฅํ•จ์ˆ˜ map

   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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

 

 

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/

 

Python์—์„œ ๋‘ ๋ชฉ๋ก ๊ณฑํ•˜๊ธฐ

์ด ํŠœํ† ๋ฆฌ์–ผ์€ Python์—์„œ ๋‘ ๊ฐœ์˜ ๋ชฉ๋ก์„ ๊ณฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

www.delftstack.com

http://bigdata.dongguk.ac.kr/lectures/Python/_book/numpy.html#%EB%82%9C%EC%88%98%EB%9E%9C%EB%8D%A4%EB%84%98%EB%B2%84%EC%9D%98-%EC%83%9D%EC%84%B1

 

4 ์žฅ Numpy | ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ

Two-dimensional array slicing

bigdata.dongguk.ac.kr

https://blockdmask.tistory.com/531

 

[python] ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์ œ

์•ˆ๋…•ํ•˜์„ธ์š”. BlockDMask์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ map ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 1. ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ• 2. ํŒŒ์ด์ฌ map ํ•จ์ˆ˜ ์˜ˆ์ œ 1. map ํ•จ์ˆ˜ ์„ค๋ช…๊ณผ ์‚ฌ์šฉ๋ฒ• 1-1) ํŒŒ์ด์ฌ ๋งต ํ•จ์ˆ˜ ๊ธฐ๋ณธ

blockdmask.tistory.com

 

'๐Ÿ“‚Language > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜ | ๋‚ด๋ถ€ ํ•จ์ˆ˜ - ์™ธ๋ถ€ ํ•จ์ˆ˜  (0) 2023.02.18
[Python] ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์ •๋ฆฌ | input | readline | ๊ณ„์† ์ž…๋ ฅ ๋ฐ›๊ธฐ | ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ  (0) 2023.02.05
    '๐Ÿ“‚Language/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜ | ๋‚ด๋ถ€ ํ•จ์ˆ˜ - ์™ธ๋ถ€ ํ•จ์ˆ˜
    • [Python] ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์ •๋ฆฌ | input | readline | ๊ณ„์† ์ž…๋ ฅ ๋ฐ›๊ธฐ | ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”