ãªããæåãããã®ã§ã C vs Python vs Ruby vs Haskellï¼ç¡æå³ãªå¦çdeãã³ããã¼ã¯ï¼ ãã®ã³ã¼ãã Pythonic ã«æ¸ãç´ãã¦ããã¾ãã ã¡ãªã¿ã«ã Python 㯠3.3 ã使ãã¾ãã
ã¾ããæåã®ã³ã¼ã
n = 4000 a = [] count = 1 for x in range(n): a.append([]) for y in range(n): a[x].append(count) count += 1 list(map(lambda e: e.reverse(), a)) print(a[-1][-1])
time ã³ãã³ãã§å®è¡é度測ã£ãã 5.1sec ã§ããã ãã¦ã Python ã¯ãã¼ã«ã«å¤æ°ã¨ã°ãã¼ãã«å¤æ°ã§ã¢ã¯ã»ã¹é度ãéãã¾ãã(å¼ã³åºãã颿°ã®ä¸ãªã©ããã°ãã¼ãã«å¤æ°ãæ¸ãæããããå¯è½æ§ã¯ããã¾ããããã¼ã«ã«å¤æ°ã¯å¤é¨ããæ¸ãæããããå¯è½æ§ããªãããã§ã)
ãªã®ã§ãã«ã¼ããè¡ãå¦çã¯é¢æ°ãä½ã£ã¦ãã®ä¸ã§ããã¾ãããã
def main(): n = 4000 a = [] count = 1 for x in range(n): a.append([]) for y in range(n): a[x].append(count) count += 1 list(map(lambda e: e.reverse(), a)) print(a[-1][-1]) main()
ããã§ 2.8sec ã«ãªãã¾ãããã§ãããã®ã³ã¼ãã¯ãã¾ã Pythonic ã§ã¯ããã¾ããã Pythonic ã«ãã¦ã¿ã¾ãããã
def main(): n = 4000 a = [] for c in range(1, 1+n**2, n): a.append(list(range(c, c+n))) for e in a: e.reverse() print(a[-1][-1]) main()
ããã§ 0.65sec ã«ãªãã¾ããã