Pythonã§ã³ãŒããæžããŠããŠããããïŒãã£ã¡ã®å€æ°ãå€ããã€ãããªã®ã«ããªããå¥ã®å€æ°ãŸã§æžãæãã£ãŠããâŠããšããçµéšã¯ãããŸãããïŒãããåäžå «ä¹ ãã¥ãŒã¿ãã« / ã€ãã¥ãŒã¿ãã« ã®çè§£äžè¶³ãåå ã§ãã
ãã®æ§è³ªãæ£ããæŒãããŠãããšããªã¹ããèŸæžãæ±ããšãã®ãèŠããªãå°é·ããèžãŸãªããªãã颿°èšèšã®èªç±åºŠããã£ãšäžãããŸããããã°ã©ã ã®å®å šæ§ãé«ãŸãã°ãå€äžãŸã§åå äžæã®ãã°ã远ããããæéãæ¿æžãããªãã®Pythonã³ãŒãã¯ãã£ãšã·ã³ãã«ã§ããã£ãšä¿¡é Œã§ãããã®ã«ãªããŸããâš
èšèã®æå³ã¯ã·ã³ãã«ã§ãã
äž»ãªåãæŽçãããšãããªããŸãã
intïŒæŽæ°ïŒãfloatïŒå°æ°ïŒãboolãstrïŒæååïŒãtuplelistãdictïŒèŸæžïŒãsetïŒéåïŒãããªã³ãŒããèŠãŠãã ããã
x = 10
x = x + 20
print(x) # 30
äžèŠãããš x ã®å€ãæžãæããŠããããã«èŠããŸããããã§ããPythonã®å
éšã§ã¯ æ°ãããªããžã§ã¯ããäœãããŠã倿° x ããã¡ããæãçŽããŠãã ã ããªãã§ãã
ãã㯠id() 颿°ã§ç¢ºèªã§ããŸãã
x = 10
print(id(x)) # äŸïŒ140709...A0
x = x + 20
print(id(x)) # äŸïŒ140709...C8 â å¥ã®IDïŒ
ã€ãŸãã€ãã¥ãŒã¿ãã«ãªãªããžã§ã¯ãã¯ãå€ãå€ãããã®ã§ã¯ãªããæ¯åãŸãããšæ°ããäœãçŽãããŠããã®ã§ãã
x = [1, 2, 3]
y = x # äžèŠãyã«xãã³ããŒããŠããããã«èŠãã
y.append(4)
print(x) # [1, 2, 3, 4] â xãå€ãã£ãŠããïŒ
print(y) # [1, 2, 3, 4]
ãy ã«ã ã远å ããã®ã«ãx ãŸã§å¢ããŠãïŒããšããçŸè±¡ã§ããããã¯Pythonã®ä»£å
¥ãå€ãã®ãã®ã®ã³ããŒã§ã¯ãªããåç
§ïŒã¡ã¢ãªäžã®å Žæãžã®çµã³ã€ãïŒã®ã³ããŒã ããèµ·ãããŸãã
x ã y ãåãã¡ã¢ãªäžã®ãªã¹ããæããŠããã®ã§ãçæ¹ã append() ããã°åœç¶ããçæ¹ã«ãåæ ãããŸããid(x) ãš id(y) ã衚瀺ããã°äžèŽããŠããã¯ãã§ãã
def func(t):
t.append(999)
return t
x = [1, 2, 3]
y = func(x)
print(x) # [1, 2, 3, 999] â æž¡ããã ãã®xãŸã§å€åïŒ
print(y) # [1, 2, 3, 999]
颿°ã«æž¡ããšãããPythonã¯ãåç
§ããæž¡ããŠããŸããã ãã颿°å
ã§åãåã£ã t ã倿ŽãããšãåŒã³åºãå
ã® x ãŸã§ãããªãæžãæããã®ã§ãã
äžæ¹ãæŽæ°ãæååã®ãããªã€ãã¥ãŒã¿ãã«åãæž¡ããŠãã颿°å ã§ã®ãåä»£å ¥ãã¯æ°ãããªããžã§ã¯ããäœãã ããªã®ã§ãåŒã³åºãå ã«ã¯åœ±é¿ããŸãããçŽæã©ããã«åããŠãããŸãã
åããªã¹ããå ±æããããªããšãã¯ãã¯ã£ãããã³ããŒããäœããŸãããã
y = x.copy() ãŸã㯠y = list(x)import copy â y = copy.deepcopy(x)åŒæ°ã§åãåã£ããªã¹ããçŽæ¥ append() ã§æžãæããã®ã§ã¯ãªããæ°ãããªã¹ããäœã£ãŠè¿ãèšèšã«ãããšãå¯äœçšã®ãªã颿°ã«ãªããŸãã
def func(t):
return t + [999] # æ°ãããªã¹ããçæããŠè¿ã
ãçµ¶å¯Ÿã«æžãæããããªãããŒã¿ãã¯ãªã¹ãã§ã¯ãªã tuple ã«ããŠãããšã誀æäœã«ãããã°ãç©ççã«é²ããŸãð
åç»ãèšäºã ãã§ã¯ãåãã£ãã€ãããã§æ¢ãŸããã¡ãæå ã®æ¬ãããŒããå¿«é©ãªäœæ¥ç°å¢ãæŽãããšããã¥ãŒã¿ãã«åšãã®ãããªãèŠãã«ããæåããè ¹èœã¡ããã¹ããŒãããŸã£ããå€ãããŸãã
倿°ã»åç §ã»ãã¥ãŒã¿ãã«ãšãã£ãåºç€æŠå¿µããçŸå Žã®æèã§åã¿ç ããŠè§£èª¬ããŠãããäžåãæ¬çš¿ã®å 容ãäœç³»çã«è£åŒ·ãããæ¹ã«ç¹ã«ããããã§ãã
ããã¥ãŒã¿ãã«ãªããã©ã«ãåŒæ°ã䜿ããªããªã©ãæ¬çš¿ã§æ±ã£ãèœãšã穎ãå«ãPythonç¹æã®ãããã©ããã90é ç®ã§ç¶²çŸ ãããã®ã³ãŒããžè¿ã¥ãããã®å¿ èªæžã§ãã
åç §ã®ã€ã¡ãŒãžãå³ã«æžãåºããšãçè§£ãäžæ°ã«é²ã¿ãŸãããªã³ã°éšåãæãããæã«åœãããªãã®ã§ãé·æéã®åŠç¿ã§ãç²ãã«ããã®ãå¬ãããã€ã³ãã
éãã§ã¹ã ãŒãºãªæéµæãšããã¯ã©ã€ãã§ãå€ã®åŠç¿ãå¿«é©ãæã®ç²åŽãæããŠãããã®ã§ããµã³ãã«ã³ãŒããå®éã«æã¡èŸŒãã§æåã確ãããåŠç¿ã¹ã¿ã€ã«ãšã®çžæ§ãæçŸ€ã§ãã
å·Šã«ãšãã£ã¿ãå³ã«å ¬åŒããã¥ã¡ã³ããREPLã䞊ã¹ãŠè¡šç€ºã§ããã ãã§ãPythonã®æå確èªã¹ããŒããæ®µéãã«ãUSB-Cäžæ¬ã§æ¥ç¶ã§ããã®ã§ãããŒãPCåŠç¿è ã«ãããããã§ãã
æ¬åœã§ããã¿ãã«èªäœã¯èŠçŽ ã®å·®ãæ¿ããã§ããŸããããèŠçŽ ãšããŠå ¥ã£ãŠãããªã¹ãïŒãã¥ãŒã¿ãã«ïŒã®äžèº«ã¯æžãæãå¯èœã§ãããäžå€ãªã®ã¯å€åŽã ãããšèŠããŠãããŸãããã
æµ
ãã³ããŒïŒcopy()ïŒã¯å€åŽã®ãªã¹ãã ãè€è£œããäžã®å
¥ãåãªããžã§ã¯ãã¯åç
§ãå
±æããŸããå
¥ãåã®äžèº«ãŸã§å®å
šã«ç¬ç«ãããããšã㯠copy.deepcopy() ã«ããæ·±ãã³ããŒã䜿ããŸãããã
éåžžã«å±éºã§ããdef f(x=[]): ã®ããã«ãã¥ãŒã¿ãã«ãããã©ã«ãå€ã«ãããšããã®åããªã¹ããåŒã³åºãããšã«äœ¿ãåãããéå»ã®åŒã³åºãã®çµæãæ®ã£ãŠããŸããŸããããã©ã«ã㯠None ã«ããŠã颿°å
ã§ if x is None: x = [] ãšæžãã®ãå®ç³ã§ãã
id(a) == id(b) ã§ãåãããŸãããPythonã§ã¯ a is b ãšããæ§æãããèªç¶ã§ããå€ã®æ¯èŒã§ãã == ãšã¯æå³ãç°ãªãã®ã§ã䜿ãåãã«æ³šæããŠãã ããã
颿°ãèšèšãããšããã¯ã©ã¹ã®å±æ§ã«ããã©ã«ãå€ãäžãããšããè€æ°ã®ããŒã¿æ§é ãå ±æã»åé¢ããããšããèŠããã«å°ãèŠæš¡ã倧ããããã°ã©ã ãæžãå šã·ãŒã³ã§å¹ããŠããŸããä»ã®ãã¡ã«äœã«æã¿èŸŒãŸããŠãããšãå°æ¥ã®ããªããå©ããã¯ãã§ãðª
Pythonã®ä»£å ¥ãåŒæ°æž¡ãã¯ãå€ãã®ãã®ãã§ã¯ãªããã¡ã¢ãªäžã®å Žæãžã®åç §ããããåãããŠããã ãããã®äžç¹ãè ã«èœã¡ããšããã¥ãŒã¿ãã«/ã€ãã¥ãŒã¿ãã«ã«ãŸã€ãããã©ãã«ã¯é©ãã»ã©ã¹ããšçè§£ã§ããããã«ãªããŸãã
ã€ãã¥ãŒã¿ãã«ãªæŽæ°ãæååã¯å®å¿ããŠæ±ããäžæ¹ããªã¹ãã»èŸæžã»éåãšãã£ããã¥ãŒã¿ãã«åã¯ä»£å
¥ãšé¢æ°åŒæ°ã§å¿
ãç«ã¡æ¢ãŸã£ãŠèããç¿æ
£ã身ã«ã€ããŸããããå¿
èŠãªã copy() ã deepcopy() ã§æç€ºçã«åé¢ããããã£ãããã ãã§ãããªãã®ã³ãŒãã¯èŠéããã»ã©å
ç¢ã«ãªããŸãã
ãæ°ã«å ¥ãã®æžç±ãšããŒããå¿«é©ãªå ¥åç°å¢ãæããã°ãPythonåŠç¿ã¯ãã£ãšæ¥œããããã£ãšç¶ãããããªããŸãã仿¥åŠãã ãåç §ã®ã€ã¡ãŒãžããæŠåšã«ãèªä¿¡ãæã£ãŠæ¬¡ã®äžè¡ãæžãã«ãããŸãããð
â ïž Windowsã»ãã¥ãªã…
ð§ çªç¶ã®æçš¿ã«ãã¡ã³éšç¶ïŒã©…
ð§© ããºã«ãè§£ãå¿«æãã³ãŒãã§…
âš ããã°ã©ã ã®åäœã軜ããã…
ð ãµãŒããŒãµã€ãéçºã®äžçãž…
âš é¢åãªWebäœæ¥ãèªååã…