Pythonã§map颿°ãå®çŸ©ããïŒåºæ¬çãªèšè¿°æ¹æ³ã玹ä»
map颿°ã§ã¯ç¬¬äžåŒæ°ã«é¢æ°ã第äºåŒæ°ã«ã·ãŒã±ã³ã¹ãæå®ããŠãè€æ°ã®å€ã«å¯ŸããŸãšããŠé¢æ°ãé©çšãããããšãã§ããããã«ãªããŸãã䜿çšããŠããäžã§ã¯ãåŒæ°ã®é åºãªã©ã«æ³šæããªããã°ãªããŸããã第äžåŒæ°ã«lambdaåŒãçšããããšã第äºåŒæ°ã§é¢æ°ã䜿ãããšãã§ããŸãã®ã§ã䜿çšå Žé¢ã«å¿ããŠäœ¿ãåããããããã«ãªããŸããããPythonã«ã¯map颿°ãå®è£ ãããŠããŸããå®ã¯ã»ãã®ããã°ã©ãã³ã°èšèªã§ããã®æ©èœã¯ç»å Žããããã°ã©ã ãèšè¿°ããäžã§èŠèªæ§ãåäžããããªã©ã®å¹æããããŸããèªã¿ãããããã°ã©ãã³ã°ãç®æãããã«ããã¹ã¿ãŒããã颿°ã®ã²ãšã€ã§ãã
ããã§ã¯map颿°ã«ã€ããŠåºæ¬çãªèšè¿°æ¹æ³ã泚æç¹ã解説ããŠãããŸãã
Pythonã§map颿°ã䜿ããããã«ãªããšäŸ¿å©
map颿°ãšã¯ã·ãŒã±ã³ã¹ã®æ§æèŠçŽ ãã¹ãŠã«å¯ŸããŠããã颿°ã®åŠçãè¡ããããšããé«é颿°ã®ããšã§ãããããŠPythonã«ãããã·ãŒã±ã³ã¹ãšã¯ãªããžã§ã¯ããé çªã«åŠçããããã®ããŒã¿æ§é ãæå³ããè€æ°ããå€ãã²ãšãããŸããšããŠæ ŒçŽããåã«ãªããŸãã
äŸãã°ããnumber1=ããããnumber2=ããããnumber3=ããããšç¶ã倿°ãå€ãããå Žåãã·ãŒã±ã³ã¹åã®äžçš®ã§ãããªã¹ãã䜿ã£ãŠãnumber_list=[ãã,ãã,ãã,ã»ã»ã»ããšæžãæããããšãã§ãããã®æ¹ãã·ã³ãã«ã§èšè¿°ãã¯ããæžã¿ãŸãã
map颿°ã§ã¯ããããããªã¹ããªã©ã®ãªããžã§ã¯ãã«å«ãŸããåèŠçŽ ã«å¯ŸããŠäœãããã®å€æãå ããŠå¥ã®ãªããžã§ã¯ããçæãããããšãã§ããããã«ãªããŸããä»ã®é¢æ°ãææ³ã§åæ§ã®åŠçãè¡ãããããšãã§ããŸãããmap颿°ã䜿ãã°ç ©éãªåŠçãã§ããã ãå°ãªãèšè¿°éã§å®çŸããããããšããã¡ãªããããããŸãã
ãŸããå€ãã®å€æ°ã«å¯ŸããŠåããããªå€æåŠçããããããã°ã©ã ãæžãå¿ èŠããªããªããããæçŽããå¿ èŠã«ãªã£ãå Žåã§ã察å¿ãç°¡åã«ãªããŸãããã¡ãããæ£ããäœ¿ãæ¹ãããªããã°æåŸ ããçµæã¯åŸãããŸããããæ±ãæ¹ãé©åã«çè§£ããããšã§Pythonäžéã«åããŠäžæ©é²ãããšãã§ããããã«ãªãã§ãããã
map颿°ã®äœ¿ãæ¹
ãŸãã¯map颿°ã䜿ã£ãäŸãèŠãŠã¿ãŸãããã
sample1_list = list(range(5))
def multi(x):
y = x*2
return y
sample2_list = map(multi, sample1_list)
print(list(sample2_list))
#[0, 2, 4, 6, 8]
range ( ) 颿°ã§åŒæ°ã«5ãæå®ããŠããŸãã®ã§ãããã«ã¯0ãã5ã€åã®æ°å€ãå ¥ããã€ãŸã0ã1ã2ã3ã4ãå ¥ãããšã«ãªããŸããããããªã¹ããšããŠsample1_listã«ä»£å ¥ãããæ¬¡ã®map颿°ã§åŠçãããŠããããšã«ãªããŸããsample2_listã§ã¯map颿°ã«ãã£ãŠãªã¹ãå ã®å€ã2åã«ãªãããã«åŠçãããæåŸã«ãã®çµæãåºåããŠããŸããmap颿°ã䜿ã£ãŠããäžã§åŒæ°ãlambdaã«ã€ããŠãç¥ã£ãŠãããšåŠç¿ãæããŸãã®ã§æ¬¡é ã§èª¬æããŠãããŸãã
map颿°ã®åŒæ°
map颿°ã®åŒæ°ã®é çªã¯å¿ ãèŠããŠãããªããã°ãªããŸããã第äžåŒæ°ã«é¢æ°ã第äºåŒæ°ã«ã·ãŒã±ã³ã¹ãæå®ããã®ããã®é¢æ°ã®äœ¿çšäžã®ã«ãŒã«ã§ããã€ãŸãå å·¥å ãšãªãå€çŸ€ã第äºåŒæ°ã«æå®ãããããã©ã®ããã«å å·¥ããã®ããšãããšããã第äžåŒæ°ã«ãã£ãŠæå®ãããããšãšãªããŸããéã«èšè¿°ããŠããŸããšäžæãæ©èœããªããªãã®ã§æ³šæããŸãããã
lambdaåŒãšã¯
map颿°ã®ç¬¬äžåŒæ°ã¯é¢æ°ã®åœ¢ã§æå®ããå¿ èŠã¯ãªããlambdaåŒã§ãè¯ããšãããŠããŸããlambdaïŒã©ã ãïŒãšã¯ããåŠçã«ååãä»ããã«å®çŸ©ãããã®ã®ããšã§ãdefæã«ãã£ãŠé¢æ°å®çŸ©ãããããšããããŸãããããã§å ã«æããããã°ã©ã äŸãlambdaåŒã§æžãæããŠã¿ããšãã®ããã«ãªããŸãã
sample1_list = list(range(5))
sample2_list = map(lambda y: y*2, sample1_list)
print(list(sample2_list))
#[0, 2, 4, 6, 8]
ãã¡ããåºåçµæã¯åãã§ãããè¡æ°ãæžããèŠãç®ãã·ã³ãã«ã«ãªããŸããã
颿°ãå®çŸ©ããããšã¯äœåºŠãåãèšè¿°ãé¿ããããšãèŠèªæ§ã®åäžããã³ç®¡çãããããããããšãªã©ã«æå³ããããŸãããããç¹å®ã®åŠçãäžåºŠããè¡ããªãå Žåããããéãããç¯å²ã§ãã䜿ããªãããããŠã·ã³ãã«ãªåŠçã§ããã°ãããã颿°å®çŸ©ãããã«lambdaåŒã§è¡šçŸããæ¹ãè¯ãå Žåãããã®ã§ãã
ãããŠmap颿°ã«ãããŠã第äžåŒæ°ã颿°ã§ããå¿ èŠã¯ãªããlambdaåŒã§èšè¿°ããŠãæ£åžžã«åäœããããã«ãªã£ãŠããŸããmap颿°ã®å©ç¹èªäœãã·ã³ãã«ãªããã°ã©ã ãèšè¿°ã§ããç¹ãªã©ã«ããããã颿°ãšlambdaåŒã®äœ¿ãåãã䜵ããŠèŠããããšããã广çãªåŠç¿ãšãªãããšã§ãããã
map颿°ã䜿ã£ãããã°ã©ã äŸ
map颿°ã䜿ã£ãŠåçŽãªæ°å€ã®æãç®ãããã ãã§ãªããæ¡ä»¶åå²ãªã©ãæœããŠåºåããããã«ããã°ã©ã ãäœæããŠã¿ãŸããããäŸãã°ããæ°å€ãïŒãããå°ããã®ããïŒããã倧ããã®ãããããã¯ïŒãªã®ãããšãã£ãããšãå€å¥ããŠãã®çµæãç¥ãããŠããããããªããã°ã©ã ãäœæã§ããŸãããã®ããã«ããŠå°ããã€è€éãªåŠçãè¡ãããããšãã§ããããã«ãªãã°map颿°ã䜿ãããªããããã«ãªãã§ãããã
def sample(num):
if num < 2:
return "2æªæºã§ãã"
elif num == 2:
return "2ã§ãã"
elif num > 2:
return "2ãè¶
ããŠããŸãã"
for answer in map(sample, range(5)):
print(answer)
#2æªæºã§ãã
#2æªæºã§ãã
#2ã§ãã
#2ãè¶
ããŠããŸãã
#2ãè¶
ããŠããŸãã
ãã®å Žåãmap颿°ã«äžããããæ°å€ã颿°ãsampleãã«ãã£ãŠåŠçãããŠããããã«ã§ããŠããŸãã颿°å éšã§ã¯ifæã䜿ãïŒæªæºãªãã2æªæºã§ããããšè¡šç€ºãããã®ã»ã倿°ã®å€ã«å¿ããŠã2ã§ãããã2ãè¶ ããŠããŸããããšè¡šç€ºãããŸãã
第äºåŒæ°ã«é¢æ°ããã®ãŸãŸæž¡ãããšãã§ãã
äžã®ããã°ã©ã äŸã§ã¯map颿°ã«äžãã第äžåŒæ°ã®é¢æ°ãå°ãè€éã«ãªã£ãã ãã§ãªãã第äºåŒæ°ã颿°ã®åœ¢ã«ãªã£ãŠããç¹ã§ãç¹åŸŽçã§ãã
ãã®ããã«ãmap颿°ã®ç¬¬äºåŒæ°ã«ã¯é¢æ°ããã®ãŸãŸæž¡ãããšãå¯èœãšãããŠããŸãã
ãã®ããå¿
èŠã«å¿ãã倿°ã«æ ŒçŽããããšãªããã®ãŸãŸç¬¬äºåŒæ°ã«ã€ããŠã颿°ãçšãããšå¹ççã«ããã°ã©ã ãçµããããã«ãªããŸãã
ãŸãšã
map颿°ã§ã¯ãªã¹ãã®ããã«ãªã£ãè€æ°ã®å€ã«å¯ŸããŠé¢æ°çã®åŠçãæœãããšãã§ãã䟿å©ãªé¢æ°ã§ããåãã¯é£ããæãããããããŸããããããã§ç޹ä»ããããã°ã©ã äŸã®ããã«åºæ¬çã§åçŽãªå
容ã®ãã®ããæ
£ããŠãããšè¯ãã§ãããã
䜿ãããªããããã«ãªãã°ããã°ã©ãã³ã°ã®ã¹ããŒããäžããããããŠèªã¿ãããèšè¿°ããããšãã§ããããã«ãªãã§ãããã













