๐Ÿ“–map

iterableํ•œ ๊ฐ์ฒด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜

map(function, iterable)
  • function : ๊ฐ ์š”์†Œ์— ์ ์šฉํ•  ํ•จ์ˆ˜ iterable : ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•  ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ
  • ๋‚ด๋ถ€์ ์œผ๋กœ C๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์–ด ํŒŒ์ด์ฌ์˜ ๋ฐ˜๋ณต๋ฌธ๋ณด๋‹ค ๋น ๋ฆ„
  • map ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜
  • lazy evaluation : map ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด map ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€๋งŒ ์‹ค์ œ๋กœ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์€ map ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๊นŒ์ง€ ๋ฏธ๋ค„์ง

๐Ÿ“–์‚ฌ์šฉ ์˜ˆ์‹œ

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ
  • ๋‹ค๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์— ๋™์ผํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ“Ž๋‘ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋”ํ•˜๊ธฐ

nums1 = [1, 2, 3]
nums2 = [4, 5, 6]
 
result = list(map(lambda x, y: x + y, nums1, nums2)) # [5, 7, 9]

๐Ÿ“Žwith lambda

mapํ•จ์ˆ˜๋กœ ์‹œํ€€์Šค์˜ ๋ชจ๋“  ์š”์†Œ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ lambdaํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ

nums = [1, 2, 3, 4, 5]
 
result = list(map(lambda x: x * 2, nums)) # [2, 4, 6, 8, 10]

๐Ÿ“Ž2์ฐจ์› ๋ฐฐ์—ด์—์„œ์˜ ์ตœ์†Ÿ๊ฐ’/์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ

maximap = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 6], [2, 3, 4, 5, 7], [3, 4, 5, 6, 9]]
 
max_val = max(map(max, maximap)) # 9
  • map(max, maximap) == [5, 6, 7 ,9]
  1. iterableํ•œ ๊ฐ์ฒด maximap ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ๊ฐ์˜ ์š”์†Œ์ธ ๋‚ด๋ถ€ ๋ฆฌ์ŠคํŠธ์— max ํ•จ์ˆ˜๋ฅผ ์ ์šฉ
  2. max ํ•จ์ˆ˜๋Š” maximap์˜ ๊ฐ ๋‚ด๋ถ€ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ์•„ ์ƒˆ๋กœ์šด iterator๋ฅผ ์ƒ์„ฑ == [5, 6, 7, 9]
  • max(โ†‘) == 9
  1. max ํ•จ์ˆ˜๋Š” ์ƒˆ๋กœ์šด iterator([5, 6, 7,9])์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ์•„ ๋ฐ˜ํ™˜ == 9

๐Ÿ“Žchange type of element

iterable ๊ฐ์ฒด์˜ ๊ฐ ์š”์†Œ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ

str_numbers = ["1", "2", "3", "4"]
 
int_numbers = list(map(int, str_numbers)) # [1, 2, 3, 4]