看板 Python 關於我們 聯絡資訊
剛剛發現 print 太頻繁,拖慢了整個速度,修改如下: def decode(x,n): s = [] base="ATCG" for i in xrange(n): s += base[x%4] x /= 4 return "".join(s) def gen(n): return [decode(x,n) for x in xrange(4**n)] ※ 引述《ykjiang (York)》之銘言: : 不用遞迴可以活得更好,尤其在 n 太大(e.g. > 6)的情況: : def decode(x,n): : s = "" : base="ATCG" : for i in xrange(n): : s += base[x%4] : x /= 4 : return s : def gen(n): : for x in xrange(4**n): : print decode(x,n), : ※ 引述《zhouer ( )》之銘言: : : def gen(n): : : if n == 0: : : return [''] : : else: : : return [x + y for x in ['A', 'T', 'C', 'G'] for y in gen(n - 1)] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.19.38