³ª¿¡°Ô óÀ½À¸·Î ¶°¿À¸¥ ù ¹øÂ° ¹öÀüÀº ¿ÏÀüÈ÷ ³Ê¹« ½¬¿î °ÍÀ̾ú´Ù:
def f1(list):
string = ""
for item in list:
string = string + chr(item)
return string
³» Ä£±¸°¡ ¸»Çß´Ù '±×·¸°Ô ÇÏ´Â °ÍÀÌ Á¦ÀÏ ºü¸¥ ¹æ¹ýÀº ¾Æ´Ò°Å¾ß, ÀÌ°Ç ¾î¶§?':
def f2(list):
return reduce(lambda string, item: string + chr(item), list, "")
ÀÌ ¹öÀüÀº ù ¹øÂ° ¹öÀü°ú ¿ÏÀüÇÏ°Ô ¶È °°Àº ¹®ÀÚ¿ ÁýÇÕ ¿¬»êÀ» ¼öÇàÇÑ´Ù, ±×·¯³ª for ȸµ¹ÀÌÀÇ Ãæµ¹ºÎ´ãÀÌ Á¦°ÅµÇ°í ´õ ºü¸¥, ȸµ¹À̰¡ ³»Æ÷µÇ¾î ÀÖ´Â ±× reduce() ÇÔ¼ö°¡ ´ë½ÅÇϰí ÀÖ´Ù.
³»°¡ ´ë´äÇß´Ù "¹°·ÐÀ̾ß, ±×·¸Áö¸¸ ±×°ÍÀº °¢ ¸®½ºÆ® Ç׸ñ ´ç ÇÔ¼ö È£Ãâ(¶÷´ÙÇÔ¼ö)À» Èñ»ýÇÏ°í ±×·¸°Ô ÇÏ´Â °Å¾ß, ±×°ÍÀº ´õ ´À¸±°Å¶ó°í È®½ÅÇØ, ¿Ö³ÄÇϸé ÇÔ¼ö È£Ã⠺δãÀº for ȸµ¹ÀÌ ºÎ´ãº¸´Ù ´õ Å©±â ¶§¹®À̾ß".
(ÁÁ´Ù, ±×·¡¼ ³ª´Â ÀÌ¹Ì ±× ºñ±³¸¦ ¼öÇàÇÏ¿© º¸¾Ò´Ù. f2()´Â f1()º¸´Ù 60% ´õ ½Ã°£ÀÌ °É·È´Ù. ±×·¡¼ °Å±â¿¡´Â :-)
³» Ä£±¸°¡ ¸»Çß´Ù, 'Èì, ³ª´Â À̰ÍÀÌ ´õ ºü¸¦ Çʿ䰡 ÀÖ¾î'. ³»°¡ ¸»Çß´Ù, 'ÁÁ¾Æ, ÀÌ ¹öÀüÀº ¾î¶§' :
def f3(list):
string = ""
for character in map(chr, list):
string = string + character
return string
¿ì¸® ¸ðµÎ ³î¶ú´Âµ¥, f3()ÀÌ f1()º¸´Ù µÎ ¹è³ª ½Ã°£ÀÌ »¡¶ú´Ù! ¿ì¸®°¡ À̰Ϳ¡ ³î¶õ ÀÌÀ¯´Â µÎ °¡Áö Ãø¸éÀ̾ú´Ù: ù °, ±×°ÍÀº ´õ ¸¹Àº ±â¾ï°ø°£À» »ç¿ëÇÑ´Ù ( map(chr, list)ÀÇ ±× °á°ú´Â °°Àº ±æÀ̸¦ °¡Áø ¶Ç ´Ù¸¥ ¸®½ºÆ®ÀÌ´Ù); µÑ °, ±×°ÍÀº ÇѰ³ ´ë½Å¿¡ µÎ °³ÀÇ È¸µ¹À̸¦ Æ÷ÇÔÇÑ´Ù ( map() ÇÔ¼ö¿¡ ¾Ï½ÃµÈ ȸµ¹ÀÌ, ±×¸®°í for ȸµ¹ÀÌ).
¹°·Ð, °ø°£ ´ë ½Ã°£Àº Àß ¾Ë·ÁÁø ±³È¯-°ü°èÀÌ´Ù, ±×·¡¼ ù ¹øÂ° ÀÌÀ¯´Â ¿ì¸®¸¦ ³î¶ó°Ô ÇØ¼´Â ¾ÈµÈ´Ù, ±×·¸Áö¸¸, ¿Ö µÎ °³ÀÇ È¸µ¹À̰¡ ÇÑ °³º¸´Ù ºü¸¥°Ç°¡? µÎ°³ÀÇ ÀÌÀ¯°¡ ÀÖ´Ù.
ù°·Î, f1()¿¡¼, ³»Àå ÇÔ¼ö chr()ÀÌ ¸Å ¹Ýº¹¶§ ¸¶´Ù Ž»öµÇ¾îÁø´Ù, ¹Ý¸é¿¡ f3()¿¡¼´Â, ±×°ÍÀº ( map()¿¡ ´ëÇÑ Àμö·Î¼) ÇÑ ¹ø¸¸ Ž»öµÉ »ÓÀÌ´Ù. ³ª´Â ³» Ä£±¸¿¡°Ô ¸»Çß´Ù. 'ÀÌ Å½»öÀº »ó´ëÀûÀ¸·Î ´ë°¡°¡ ³Ê¹« ºñ½Î, ¿Ö³ÄÇÏ¸é ÆÄÀ̽ãÀÇ µ¿Àû ¿µ¿ª ±ÔÄ¢ÀÌ ¶æÇÏ´Â ¹Ù´Â ±×°ÍÀÌ ÇöÀç ¸ðµâÀÇ Àü¿ª »çÀü¿¡¼ Ž»öµÇ¾îÁö°í (¿©±â¼´Â ½ÇÆÐÇß°í), ±×¸®°í ³ª¼ ³»Àå ÇÔ¼öÀÇ »çÀü¿¡¼ Ž»öµÇ¾îÁø´Ù(¿©±â¿¡¼ ¹ß°ßµÇ¾ú¾î)´Â °ÍÀ» ÀǹÌÇϱ⠶§¹®À̾ß. ´õ ³ª»Ú°Ôµµ, »çÀü Ž»öÀÌ ¼º°øÀûÀÌÁö ¸øÇϸé, ÇØ½¬ ¿¬°á ÀÛ¾÷ÀÇ ¹æ½Ä ¶§¹®¿¡, (Æò±ÕÀûÀ¸·Î) ¼º°øÀûÀÏ °æ¿ìº¸´Ù ¾à°£ ´õ ´À·Á'.
f3()ÀÌ f1()º¸´Ù ´õ ºü¸¥ µÎ ¹øÂ° ÀÌÀ¯´Â chr(item)¿¡ ´ëÇÑ È£ÃâÀÌ, ¹ÙÀÌÆ®ÄÚµå ÀÎÅÍÇÁ¸®ÅÍ¿¡ ÀÇÇØ¼ ½ÇÇàµÉ ¶§, map() ÇÔ¼ö¿¡ ÀÇÇØ¼ ½ÇÇàµÉ ¶§º¸´Ùµµ ¾Æ¸¶ ¾à°£ ´õ ´À¸®´Ù´Â °ÍÀÌ´Ù - ¹ÙÀÌÆ®ÄÚµå ÀÎÅÍÇÁ¸®ÅÍ´Â °¢°¢ÀÇ È£Ãâ (load 'chr', load 'item', call)¿¡ ´ëÇÏ¿© ¼¼ °³ÀÇ ¹ÙÀÌÆ®ÄÚµå Áö½Ã¾î¸¦ ½ÇÇàÇØ¾ß¸¸ ÇÑ´Ù, ¹Ý¸é¿¡ map() ÇÔ¼ö´Â ±× ¸ðµç °ÍÀ» C¿¡¼ ½ÇÇàÇÑ´Ù.
ÀÌ·±°í·Î ¿ì¸®´Â ŸÇùÃ¥À» °í·ÁÇØ¾ß Çߴµ¥, ±×°ÍÀº °ø°£À» Ãß°¡·Î ³¶ºñÇÏÁö ¾ÊÀ» °ÍÀ̰í, ¹Ý¸é¿¡ chr() ÇÔ¼ö¸¦ ã´Â ¼Óµµ¸¦ ³ô¿© ÁÙ °ÍÀÌ´Ù:
def f4(list):
string = ""
lchr = chr
for item in list:
string = string + lchr(item)
return string
¿¹»óÇÑ´ë·Î, f4()´Â f3()º¸´Ù ´õ ´À·È´Ù, ±×·¯³ª °Ü¿ì 25%Â÷ÀÌÀÌ´Ù; ±×°ÍÀº f1()º¸´Ù ¿©ÀüÈ÷ 40% ºü¸£´Ù
. À̰ÍÀº Áö¿ª º¯¼ö Ž»öÀÌ Àü¿ªÀ̳ª ȤÀº ³»Àå º¯¼ö Ž»öº¸´Ù ÈξÀ ´õ ºü¸£±â ¶§¹®ÀÌ´Ù: ÆÄÀ̽ã "ÄÄÆÄÀÏ·¯"´Â ´ëºÎºÐÀÇ ÇÔ¼ö ¸öü¸¦ ÃÖÀûÈÇÏ¿© Áö¿ª º¯¼öµé¿¡ ´ëÇÏ¿©´Â, »çÀü Ž»öÀÌ ÇÊ¿ä ¾øµµ·Ï ÇÏÁö¸¸, °£´ÜÇÑ ¹è¿ ÁöÇ¥È Ã³¸®¿¡´Â ÃæºÐÇÏ´Ù. f1()°ú f3()¿¡ ºñ±³ÇÏ¿© f4()ÀÇ »ó´ëÀûÀÎ ¼Óµµ´Â f3()ÀÌ ´õ ºü¸¥ °øÇåÀÚÀÎ µÎ °¡Áö ÀÌÀ¯¸¦ ¼³¸íÇØ ÁØ´Ù, ±×·¯³ª ù ¹øÂ° (´õ ÀûÀº Ž»öÀ̶ó´Â) ÀÌÀ¯°¡ ¾à°£ ´õ Áß¿äÇÏ´Ù´Â °ÍÀ» Á¦½ÃÇØ ÁØ´Ù. (À̰Ϳ¡ °üÇÑ ´õ Á¤È®ÇÑ µ¥ÀÌŸ¸¦ ¾òÀ¸·Á¸é, ¿ì¸®´Â ±× ÀÎÅÍÇÁ¸®Å͸¦ Á¶ÀÛÇØ¾ß¸¸ ÇÒ °ÍÀÌ´Ù).
¿©ÀüÈ÷, ¿ì¸®ÀÇ ÃÖ°í·Î ÁÁÀº ¹öÀü, f3()Àº °¡Àå ½¬¿î ¹öÀü, f1()º¸´Ù °Ü¿ì µÎ¹è ºü¸¦ »ÓÀ̾ú´Ù. ¿ì¸®´Â ´õ ÁÁ°Ô ÇÒ ¼ö ÀÖÀ»±î?
³»°¡ °ÆÁ¤ÇÑ °ÍÀº ±× ¾Ë°í¸®ÁòÀÇ 2Â÷ ¹æÁ¤½Ä °°Àº ÇàÀ§°¡ ¿ì¸®¸¦ ±«·ÓÈú °ÍÀ̶ó´Â °ÍÀ̾ú´Ù. Áö±Ý±îÁö, ¿ì¸®´Â 256°³ÀÇ Á¤¼ö¸¦ Å×½ºÆ® µ¥ÀÌŸ·Î °¡Áö´Â ¸®½ºÆ®¸¦ »ç¿ëÇØ¿Ô´Ù, ¿Ö³ÄÇÏ¸é ±×°ÍÀÌ ³» Ä£±¸°¡ ±× ÇÔ¼ö¿¡ ÇÊ¿äÇÏ´Ù°í ÇÏ´Â °ÍÀ̾ú±â ¶§¹®À̾ú´Ù. ±×·¯³ª ÀÌõ°³ÀÇ ¹®ÀÚ¸¦ °¡Áö´Â ¸®½ºÆ®¿¡ Àû¿ëµÈ´Ù¸é ¾î¶»°Ô µÇ³ª? ¿ì¸®´Â Çѹø¿¡ ÇÑ ¹®ÀÚ¾¿, ±æ°í ±ä ¹®ÀÚ¿À» ¿¬°áÇØ¾ß ÇÒ °ÍÀÌ´Ù. Ãæµ¹ºÎ´ãÀ̶ó´Â °ÍÀ» °í·ÁÇÏÁö ¾Ê°í, ÀÌ·± ¹æ½ÄÀ¸·Î ±æÀ̰¡ NÀÎ ¸®½ºÆ®¸¦ »ý¼ºÇÑ´Ù¸é, '1 + 2 + 3 + ... + (N-1)' ȤÀº 'N*(N-1)/2', ¶Ç´Â '0.5*N**2 - 0.5*N'°³ÀÇ ¹®ÀÚ¿ÀÌ ÀüüÀûÀ¸·Î º¹»çµÇ¾î¾ß¸¸ ÇÑ´Ù´Â °ÍÀ» ½±°Ô ¾Ë ¼ö ÀÖ´Ù. ÀÌ°Í ¸»°íµµ, N°³ÀÇ ¹®ÀÚ¿ ÇÒ´ç 󸮰¡ ÀÖ´Ù, ±×·¯³ª ÃæºÐÈ÷ Å« N À̶ó¸é, 'N**2'À» Æ÷ÇÔÇÏ´Â ´Ü¾î°¡ ´ë½ÅÇÏ°Ô µÉ °ÍÀÌ´Ù. ½ÇÁ¦·Î, (2048°³ÀÇ Ç׸ñÀ» °¡Áø) 8 ¹è ±ä ¸®½ºÆ®¶ó¸é, ÀÌ ÇÔ¼öµéÀº ¸ðµÎ 8¹è ÀÌ»ó ½Ã°£ÀÌ °É¸°´Ù; ½ÇÁ¦·Î´Â, 16¹è¿¡ °¡±õ´Ù. ³ª´Â °¨È÷ 64 ¹è ±æÀÌÀÇ ¸®½ºÆ®¸¦ ½ÃµµÇÏÁö´Â ¾Ê¾Ò´Ù.
¾Ë°í¸®Áò¿¡¼ ÀÌ¿Í °°Àº 2Â÷ ¹æÁ¤½Ä·ùÀÇ ÇàÀ§¸¦ ÇÇÇϱâ À§ÇÑ ÀϹÝÀûÀÎ Å×Å©´ÐÀÌ ÀÖ´Ù. ³ª´Â Á¤È®ÇÏ°Ô 256°³ÀÇ Ç׸ñÀ» °¡Áö´Â ¹®ÀÚ¿µéÀ» À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ Äڵ带 ÇÏ¿´´Ù:
def f5(list):
string = ""
for i in range(0, 256, 16): # 0, 16, 32, 48, 64, ...
s = ""
for character in map(chr, list[i:i+16]):
s = s + character
string = string + s
return string
ºÒÇàÇϰԵµ, 256°³ÀÇ Ç׸ñÀ» °¡Áö´Â ¸®½ºÆ®¿¡ ´ëÇÏ¿©, ÀÌ ¹öÀüÀº ¾à°£ ´À¸®°Ô (±×·¸Áö¸¸ f3()ÀÇ 20% À̳»¿¡¼) ½ÇÇàµÇ¾ú´Ù. ÀÏ¹Ý ¹öÀüÀ» ÀÛ¼ºÇÏ´Â °ÍÀº ±×°ÍÀ» ´õ¿í ´À¸®°Ô ÇÒ »ÓÀ̱⠶§¹®¿¡, ¿ì¸®´Â ´õ ÀÌ»ó ÀÌ ±æÀ» µû¶ó°¡·Á°í °í¹ÎÇÏÁö ¾Ê¾Ò´Ù (±×°Í ¸»°íµµ ¿ì¸®´Â ¶ÇÇÑ ±×°ÍÀ» map()À» »ç¿ëÇÏÁö ¾Ê´Â º¯Á¾°ú ºñ±³Çغ¸¾Ò´Ù, ¹°·Ð ±×°ÍÀº ¶Ç ´Ù½Ã ´õ ´À·È´Ù.).
°á±¹, ³ª´Â ±Ùº»ÀûÀ¸·Î ´Ù¸¥ Á¢±ÙÀ» ½ÃµµÇÏ¿´´Ù: ¿ÀÁ÷ ³»ÀçµÈ ȸµ¹À̸¸À» »ç¿ëÇÏ´Â °Í. ÁÖ¸ñÇÒ °ÍÀº ±× Àüü 󸮴 ´ÙÀ½°ú °°ÀÌ ±â¼úµÉ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù: chr()À» °¢°¢ÀÇ ¸®½ºÆ® Ç׸ñ¿¡ Àû¿ëÇÑ´Ù; ±×¸®°í´Â ±× °á°ú·Î ³ª¿Â ¹®ÀÚµéÀ» ¿¬°áÇÑ´Ù. ¿ì¸®´Â ÀÌ¹Ì Ã¹ ¹øÂ° ÆÄÆ®¸¦ À§Çؼ ¾Ï½ÃµÈ ȸµ¹À̸¦ »ç¿ëÇÏ¿´´Ù: map(). ´ÙÇེ·´°Ôµµ, C ¿¡¼ ±¸ÇöµÈ ±× ¹®ÀÚ¿ ¸ðµâ¿¡´Â ¾à°£ÀÇ ¹®ÀÚ¿ ¿¬°á ÇÔ¼öµéÀÌ ÀÖ´Ù.
ƯÈ÷³ª, string.joinfields(list_of_strings, delimiter)´Â, ±¸ºÐÀÚ(delimiter)¸¦ µÎ ¹®ÀÚ¿ »çÀÌ¿¡ °¢°¢ À§Ä¡½Ã۰í, ¹®ÀÚ¿ÀÇ ¸®½ºÆ®¸¦ ¿¬°áÇÑ´Ù. ±× ¾î´À °Íµµ ¿ì¸®°¡, ±× ºó ¹®ÀÚ¿À» ±¸ºÐÀÚ·Î »ç¿ëÇÏ¿©, ¹®ÀÚµéÀÇ ¸®½ºÆ®¸¦ ¿¬°áÇÏ´Â °ÍÀ» ¸·À» ¼ö ¾ø´Ù (±×°ÍÀº ÆÄÀ̽㿡¼ ±æÀ̰¡ 1 ÀÎ ±×Àú ´Ü¼øÇÑ ¹®ÀÚ¿ÀÌ´Ù). ÀÚ º¸¶ó:
import string
def f6(list):
return string.joinfields(map(chr, list), "")
ÀÌ ÇÔ¼ö´Â ¿ì¸®ÀÇ °¡Àå ºü¸¥ °æÀïÀÚÀÎ, f3()º¸´Ù 4¹è ³»Áö 5¹è ºü¸£°Ô ½ÇÇàµÇ¾ú´Ù. °Ô´Ù°¡, ±×°ÍÀº ´Ù¸¥ ¹öÀüµéÀÌ °¡Áø 2Â÷ ¹æÁ¤½Ä·ùÀÇ ÇàÀ§¸¦ °¡ÁöÁö ¾Ê´Â´Ù.
import array
def f7(list):
return array.array('b', list).tostring()
À̰ÍÀº f6()º¸´Ù ¾à 3 ¹è ºü¸£°Å³ª, ¶Ç´Â f3()º¸´Ù 12 ³»Áö 15 ¹è ºü¸£´Ù! ±×°ÍÀº ¶ÇÇÑ °£Á¢ÀûÀÎ ±â¾ïÀå¼Ò¸¦ ´ú »ç¿ëÇÑ´Ù - ±×°ÍÀº °Ü¿ì N¹ÙÀÌÆ®¸¦ °¡Áø 2°³ÀÇ °´Ã¼¸¸À» ÇÒ´çÇÑ´Ù (°Ô´Ù°¡ Ãæµ¹ºÎ´ãµµ ¼öÁ¤µÇ¾ú´Ù), ¹Ý¸é¿¡ f6()Àº N°³ÀÇ Ç׸ñÀ» °¡Áø ¸®½ºÆ®¸¦ ÇÒ´çÇÔÀ¸·Î½á ½ÃÀÛÇϴµ¥, ±× ¹®ÀÚ °´Ã¼µéÀÌ ±× ÇÁ·Î±×·¥ÀÇ ¾îµð¿¡¼±°¡ ºñ½ÁÇÑ °´Ã¼µé°ú °øÀ¯µÈ´Ù°í °¡Á¤ÇÑ´Ù¸é - ±×°ÍÀº º¸Åë 4N ¹ÙÀÌÆ®¸¦ ¼ÒºñÇÑ´Ù (64-ºñÆ® ¸Ó½Å¿¡¼´Â 8N ¹ÙÀÌÆ®) (ÀÛÀº Á¤¼öµé°ú ¸¶Âù°¡Áö·Î, ÆÄÀ̽ãÀº ´ëºÎºÐÀÇ °æ¿ì¿¡ ±æÀ̰¡ 1ÀÎ ¹®ÀÚ¿µéÀ» °¨Ãß¾î ÀúÀåÇÑ´Ù).
"±×¸¸", ³» Ä£±¸°¡ ¸»Çß´Ù. "À½ÀÇ ¹è¼ö·Î °¡±âÀü¿¡ ¸ØÃç" - "ÀÌ°Å¸é ³» ÇÁ·Î±×·¥¿¡ ÃæºÐÇÏ°Ô »¡¶ó". ³ªµµ µ¿°¨Çß´Ù, ±×·¸Áö¸¸ ³ª´Â ¶Ç Çϳª ´õ Á¢±ÙÀ» ½ÃµµÇØ º¸°í ½Í¾ú´Ù: ±× Àüü ÇÔ¼ö¸¦ C ·Î ÀÛ¼ºÇÏ´Â °Í. À̰ÍÀº ÃÖ¼ÒÇÑÀ¸·Î ¸Þ¸ð¸®¸¦ ¿ä±¸ÇÒ °ÍÀÌ´Ù (±×°ÍÀº Áï½Ã ±æÀÌ NÀÇ ¹®ÀÚ¿À» ÇÒ´çÇÒ °ÍÀÌ´Ù) ±×¸®°í ±×ÀÇ ¹ü¿ë¼º¶§¹®¿¡, ±× ¹è¿ ¸ðµâ¿¡ ÀÖ´Ù°í ³»°¡ ¾Ë°í ÀÖ´Â ±× CÄڵ忡¼ ¾à°£ÀÇ Áö½Ã¾îµéÀ» Àý¾àÇÒ °ÍÀÌ´Ù. (±×°ÍÀº 1, 2, ±×¸®°í 4 ¹ÙÀÌÆ® Å©±âÀÇ Á¤¼ö¸¦ Áö¿øÇÑ´Ù). ±×·¸Áö¸¸, ±×°ÍÀº ±× ¸®½ºÆ®·ÎºÎÅÍ ±× Ç׸ñµéÀ» Çѹø¿¡ ÇѰ³¾¿ ÃßÃâÇØ¾ß¸¸ Çϰí, ±×¸®°í ±×µé·ÎºÎÅÍ ±× C Á¤¼ö¸¦ ÃßÃâÇØ¾ß¸¸ ÇÏ´Â °ÍÀ» ÇÇÇÒ ¼ö ¾øÀ» °ÍÀÌ´Ù, µÑ ´Ù ¸ðµÎ ÆÄÀ̽ã-C API¿¡¼ ´ë´ÜÈ÷ ºñ¿ëÀÌ ¸¹ÀÌ µå´Â 󸮹æ¹ýÀÌ´Ù, ±×·¡¼ ³ª´Â f7()°ú ºñ±³ÇÏ¿© ±â²¯ÇØ¾ß ¹Ì¹ÌÇÑ ¼Óµµ °³¼±À» ¿¹»óÇß´Ù. (±×·¯ÇÑ ÆÄÀ̽ãÀÇ ÇÑ-ÁÙÂ¥¸® Äڵ带 ÀÌ¿ëÇÏ´Â °Í°ú ºñ±³ÇÏ¿©) È®ÀåÀ» Å×½ºÆ®Çϰí ÀÛ¼ºÇÏ´Â ³ë·ÂÀÌ ÀÖ¾î¾ß ÇÑ´Ù¸é, »Ó¸¸ ¾Æ´Ï¶ó ºñ-Ç¥ÁØ ÆÄÀ̽ã È®Àå¿¡ ÀÇÁ¸ÀûÀ̶ó¸é, ³ª´Â ÀÌ ¼±ÅÃÀ» µû¸£Áö ¾Ê±â·Î °áÁ¤Çß´Ù...
import time
def timing(f, n, a):
print f.__name__,
r = range(n)
t1 = time.clock()
for i in r:
f(a); f(a); f(a); f(a); f(a); f(a); f(a); f(a); f(a); f(a)
t2 = time.clock()
print round(t2-t1, 3)
±×·¯³ª À̹ø¿¡´Â, ±×°ÍÀº »ó´ëÀûÀ¸·Î Ãæµ¹ºÎ´ãÀÌ Àû¾ú´Ù. µÎ °³ÀÇ Èĺ¸ÀÚ°¡ Àִµ¥, È®½ÇÇÑ Èĺ¸ÀÚ´Â:
def g1(string):
return map(ord, string)
±×¸®°í ¾à°£ ´ú È®½ÇÇÑ Èĺ¸ÀÚ´Â:
import array
def g2(string):
return array.array('b', string).tolist()
À̰͵éÀ» Àç¾îº¸¸é g2()°¡ g1()º¸´Ù ¾à ´Ù¼¸ ¹è ºü¸£´Ù.
±×·¸Áö¸¸ °Å±â¿¡´Â ÇÔÁ¤ÀÌ ÀÖ´Ù: g2()´Â -128..127 ¹üÀ§ÀÇ Á¤¼öµéÀ» ¹ÝȯÇÑ´Ù, ¹Ý¸é¿¡ g1()Àº 0..255 ¹üÀ§ÀÇ Á¤¼öµéÀ» ¹ÝȯÇÑ´Ù.
¸¸¾à ¿©·¯ºÐÀÌ ¾çÀÇ Á¤¼öµéÀÌ ÇÊ¿äÇÏ´Ù¸é, g2()·ÎºÎÅÍ ³ª¿Â ±× °á°ú¿¡ ¿©·¯ºÐÀÌ ÇÒ ¼ö ÀÖ´Â ±× ¾î¶² µÞ󸮹æ¹ýº¸´Ùµµ g1()ÀÌ ºü¸£°Ô µÉ °ÍÀÌ´Ù. (ÁÖÀÇ: ÀÌ ¿¡¼¼À̰¡ ¾º¾îÁø ÀÌÈÄ·Î, 'B'Çü Äڵ尡 ±× ¹è¿ ¸ðµâ¿¡ Ãß°¡µÇ¾ú´Ù, ±×°ÍÀº ºÎÈ£¾ø´Â ¹ÙÀÌÆ®¸¦ ÀúÀåÇÑ´Ù, ±×·¡¼ g1()À» ´õ ÀÌ»ó ¼±È£ÇÒ ÀÌÀ¯°¡ ¾ø´Ù.)