Pythonã§ãªã¹ããäœããšãããããªã³ãŒããæžããŠããŸãããïŒ
x = []
for i in range(11):
x.append(i)
åãããèªãã°æå³ãåãããã§ããPythonã«ã¯ããããã£ã1è¡ã§æžããéæ³ã®ãããªæ§æããããŸãââããããªã¹ãå å 衚èšïŒlist comprehensionïŒã§ãã
ãªã¹ãå å 衚èšããã¹ã¿ãŒãããšãã«ãŒãåŠçãå«ãã³ãŒãããã£ãšã¹ãããªãOSSãæè¡ããã°ã®ãµã³ãã«ã³ãŒããã¹ã©ã¹ã©èªããããã«ãªãããPythonäžçŽè ã®æžãã³ãŒããã«äžæ©è¿ã¥ããŸãâš èªåã®ã³ãŒãã«èªä¿¡ãæãŠãããã«ãªãæèŠããã²å³ãã£ãŠã¿ãŠãã ããã
ãªã¹ãå å 衚èšãšã¯ãforæã䜿ã£ãŠãªã¹ããç°¡åã«1è¡ã§äœãããã®æžãæ¹ã§ããåºæ¬åœ¢ã¯ãšãŠãã·ã³ãã«ã
[åŒ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã]
è§ãã£ã [ ] ã®äžã«ãã©ããªèŠçŽ ãå
¥ããããïŒåŒïŒããšãã©ãããæã£ãŠãããïŒforã«ãŒãïŒããæžãã ããããã ãã§ãæ°ãããªã¹ããäžæ°ã«åºæ¥äžãããŸãð
倧ããåããŠããªã¹ãå å 衚èšã«ã¯3ã€ã®æžãæ¹ããããŸããäžã€ãã€å®äŸã§èŠãŠãããŸãããã
ãã£ãšãåºæ¬ãšãªãã®ããç¹°ãè¿ããªããžã§ã¯ãã®å šèŠçŽ ã«åãåŠçãé©çšããããã¿ãŒã³ã§ãã
# æ®éã®foræç
x = []
for i in range(6):
x.append(i)
# ãªã¹ãå
å
衚èšçïŒ1è¡ïŒïŒ
x = [i for i in range(6)]
print(x) # [0, 1, 2, 3, 4, 5]
3è¡ã1è¡ã«å§çž®ãããŸãããããã ãã§èªã¿ããããä¿å®æ§ãã°ããšã¢ããããŸãð¡
è§ãã£ãã®äžã®ãåŒãã®éšåã«åŠçãæžãã°ãèŠçŽ ã倿ããªãããªã¹ããäœããŸãã
# å
šèŠçŽ ã1000åãã
y = [i * 1000 for i in range(6)]
print(y) # [0, 1000, 2000, 3000, 4000, 5000]
names = ["æè€", "å±±ç°", "ç°äž"]
# å
šå¡ã«ãããããä»ãã
result = [name + "ãã" for name in names]
print(result) # ['æè€ãã', 'å±±ç°ãã', 'ç°äžãã']
ç¹°ãè¿ããªããžã§ã¯ãã®éšåã¯ãrange() ã§ãããªã¹ãã§ããã¿ãã«ã§ããæååã§ãããªãã§ãOKãPythonãããæè»ããããã«åçž®ãããŠããŸãð
ãå
šèŠçŽ ãããªããŠãæ¡ä»¶ã«åããã®ã ãåãåºãããããšãããšãã«äœ¿ãã®ããåŸãã« if ãä»ããæžãæ¹ã§ãã
[åŒ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã if æ¡ä»¶åŒ]
# 0ã10ã®äžããå¶æ°ã ã
evens = [i for i in range(11) if i % 2 == 0]
print(evens) # [0, 2, 4, 6, 8, 10]
i % 2 == 0 ãšããæ¡ä»¶ã True ã«ãªãèŠçŽ ã ããæ°ãããªã¹ãã«å
¥ããŸããåãããã« if i % 2 != 0 ãšæžãã°å¥æ°ã ãã®ãªã¹ãããµã¯ããšäœããŸããã
foods = ["apple", "banana", "orange", "grape"]
# ãaããå«ãŸããæååã ãæœåº
with_a = [f for f in foods if "a" in f]
print(with_a) # ['apple', 'banana', 'orange', 'grape']
æååã«ãããæåãå«ãŸããŠããããã in ã§ãã§ãã¯ã§ããPythonã®åŒ·ã¿ãšããªã¹ãå
å
衚èšã®çµã¿åããã¯æåŒ·ã³ã³ãðª
ãæ¡ä»¶ã«åããšããšåããªããšãã§ãå ¥ããå€ãã®ãã®ãå€ãããããšãããšãã¯ãåŒã®éšåã«äžé æŒç®åãäœ¿ãæžãæ¹ãèŠããŸãããã
[trueã®å€ if æ¡ä»¶åŒ else falseã®å€ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã]
if ããåŒã®åãã«æ¥ãã®ããã€ã³ããæ¡ä»¶ä»ãã®æžãæ¹ïŒif ãåŸãïŒãšã¯äœçœ®ãéãã®ã§èŠæ³šæã§ãâ ïž
x2 = ["å¶" if i % 2 == 0 else i for i in range(6)]
print(x2) # ['å¶', 1, 'å¶', 3, 'å¶', 5]
æ¡ä»¶ã«ãã£ãŠãªã¹ãã®èŠçŽ ã®äžèº«ãåãæ¿ããããã®ã§ãããŒã¿æŽåœ¢ã»ååŠçã®ãšãã«å€§æŽ»èºããŸãã
kanto = ["æ æš", "æ±äº¬", "åŒç", "èšå", "矀銬", "ç¥å¥å·"]
# æ±äº¬ã«ã¯ãéœãããã以å€ã«ã¯ãçããä»ãã
result = [(p + "éœ") if p == "æ±äº¬" else (p + "ç") for p in kanto]
print(result)
# ['æ æšç', 'æ±äº¬éœ', 'åŒçç', 'èšåç', '矀銬ç', 'ç¥å¥å·ç']
ãããªåŠçãæ®éã®foræã§æžããš5ã6è¡ã¯å¿ èŠã§ããããªã¹ãå å 衚èšãªã1è¡ãã³ãŒãã¬ãã¥ãŒã§ããããPythonã£ãœããããšèšã£ãŠããããã¯ãã§ãâš
[åŒ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã] â å
šèŠçŽ ã«åŠçãé©çš[åŒ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã if æ¡ä»¶åŒ] â æ¡ä»¶ã«åãèŠçŽ ã ãæœåº[trueã®å€ if æ¡ä»¶ else falseã®å€ for 倿° in ç¹°ãè¿ããªããžã§ã¯ã] â æ¡ä»¶ã§å€ãåãæ¿ã䜿ãé »åºŠã¯ãåºæ¬åœ¢ ïŒ æ¡ä»¶ä»ã ïŒ äžé æŒç®åä»ãããšããé ã«ãªãããšãå€ãã§ãããŸãã¯åºæ¬åœ¢ããã£ããæã«éŠŽæãŸããŠãå¿ èŠã«å¿ããŠæ¡ä»¶çã»äžé çã«æ¡åŒµããŠããã®ãã¹ã ãŒãºãªåŠç¿ã¹ãããã§ãð
ãªã¹ãå å 衚èšã¯ãèªãã°ããããã ãã§ã¯èº«ã«ã€ããŸãããèªåã®æã§äœåºŠãæžãæããŠãåäœãç®ã§ç¢ºèªããããšã§åããŠèªåã®éå ·ã«ãªããŸããè¯æžãšå¿«é©ãªäœæ¥ç°å¢ãæããŠãPythonäžçŽè ãžã®é段ãäžæ®µãã€äžã£ãŠãããŸãããã
倿°ã»ãªã¹ãã»foræã»å å 衚èšãšãã£ãåºç€ããå³è§£ãšãµã³ãã«ã§äžå¯§ã«è§£èª¬ããŠãããå ¥éæžãæ¬çš¿ã®å 容ãäœç³»çã«è£åŒ·ãããæ¹ã®æåã®äžåã«ãŽã£ããã§ãã
ãå å 衚èšã3ã€ä»¥äžã®åŒã§è€éã«ãããããªããå å 衚èšãšãžã§ãã¬ãŒã¿åŒã䜿ãåããããªã©ããªã¹ãå å 衚èšãŸããã®ãã¹ããã©ã¯ãã£ã¹ãæºèŒãPythonãããæžãæ¹ãäœåŸãããæ¹ã®æ±ºå®çã§ãã
ãªã¹ãå å 衚èšã®æèŠã¯ãNumPyãPandasã®ãã¯ãã«æŒç®ãžãšãã®ãŸãŸç¹ãããŸããããŒã¿åæã®äžçã§ãPythonãããæžãæ¹ããæ¬æ Œçã«èº«ã«ã€ãããæ¹ã«ããããã§ãã
ãªã¹ãå
å
衚èšã§ã¯ [ ] ã : ãé »ç¹ã«æã¡èŸŒã¿ãŸããéé³èšèšã§ããã¯ã©ã€ãä»ãã®ããŒããŒããªããå€ã®åçµåŠç¿ãæ°æã¡ããç¶ããããŸãã
å·Šã«ãšãã£ã¿ãå³ã«REPLïŒå¯Ÿè©±ã·ã§ã«ïŒã䞊ã¹ãŠãããšããªã¹ãå å 衚èšãäžè¡ãã€è©ŠããŠçµæã確ãããåŠç¿ã¹ã¿ã€ã«ãè¶ å¿«é©ã«ãUSB-Cäžæ¬ã§æ¥ç¶ã§ããã¢ãã«ã¯ããŒãPCåŠç¿è ã®åŒ·ã峿¹ã§ãã
ã·ã³ãã«ãªãªã¹ãçæãªãå å 衚èšã®æ¹ãèªã¿ããããšãããŠããŸããäžæ¹ãè€æ°è¡ã«ãããè€éãªåŠçããå¯äœçšïŒãã¡ã€ã«æžã蟌ã¿ãªã©ïŒã絡ãåŠçã¯æ®éã®foræã®æ¹ãå®å šãã3è¡ãè¶ ãããã ãªããšæãããforæã«æ»ã倿ã倧äºã§ãð
ãã€ã³ãã¯ãifã®äœçœ®ã§æå³ãå€ãããããšã[åŒ for x in xs if æ¡ä»¶]ïŒæ¡ä»¶ã§çµã蟌ã¿ïŒãš [A if æ¡ä»¶ else B for x in xs]ïŒæ¡ä»¶ã§å€åæ¿ïŒã¯å¥ç©ã§ããåè
ã¯elseãªããåŸè
ã¯elseå¿
é ããšèŠããã®ãããããã§ãã
å€ãã®å Žåããªã¹ãå
å
衚èšã®æ¹ãé«éãã€èªã¿ããããšèšãããŠããŸããmap ã filter ã¯é¢æ°ãåŒæ°ãšããŠåãåãAPIã«æž¡ããšãã«æ¬é ãçºæ®ããã®ã§ãçšéã§äœ¿ãåããŸãããã
å¯èœã§ããã2é以äžã®ãã¹ãã¯å¯èªæ§ãäžæ°ã«èœã¡ãã®ã§æ³šæã[[i*j for j in range(3)] for i in range(3)] ã®ããã«2次å
é
åãäœãçšåºŠã«çãããã以äžãªãforæã«æ»ãã®ãç¡é£ã§ãã
ã§ããŸãïŒ {key: value for ...} ã§èŸæžå
å
衚èšã{x for ...} ã§éåå
å
衚èšãæžããŸããäžåºŠãªã¹ãå
å
衚èšããã¹ã¿ãŒããã°ãèã¥ãåŒã«ä»ã®æ§é ããã¹ã¿ãŒã§ããŸãð
Pythonã®ãªã¹ãå å 衚èšã¯ãforæã«ãããªã¹ãçæã1è¡ã§è¡šçŸã§ãã匷åãªæ§æã§ããåºæ¬åœ¢ã»æ¡ä»¶ä»ãã»äžé æŒç®åä»ãã®3ãã¿ãŒã³ããæŒãããã°ãã»ãŒãã¹ãŠã®å Žé¢ã«å¯Ÿå¿ã§ããŸãã
é ã§èŠããããšãããããšããããREPLã§æã¡èŸŒãã§åãããŠã¿ããã®ãæçã«ãŒãã[i for i in range(10)] ããå§ããŠãif ãå ããäžé
æŒç®åã«ææŠâŠâŠã𿮵éçã«ã¹ãããã¢ããããŠããã°ãèªç¶ãšæãèŠããŠãããŸãã
æ°ã¥ãã°ããªãã®ã³ãŒããã㯠x = [] ãš x.append() ã®3è¡ã«ãŒããæ¶ããã¹ãããªããè§ãã£ãäžã€ã§æå³ãäŒããããã«ãªã£ãŠããã¯ãããæ°ã«å
¥ãã®æžç±ãšå¿«é©ãªäœæ¥ç°å¢ã峿¹ã«ã€ããŠã仿¥ããPythonã®ãã«ãã³ããæžãæ¹ããèªåã®ãã®ã«ããŠãããŸãããðð
âš äžçãæ³šç®ããç®é»è®ã®ã次…
âš ä»ã誰ããæ³šç®ããç®é»è®ã…
ð AIæ¥çã«æ¿éïŒMetaãš…
ð ä»ãäžçã§èµ·ããŠãããéã…
ð AIããAIã¢ã·ã¹ã¿ã³ãã…
ð ãæŽèœãã¯æåŒ·ã®è²·ãå Žã