Pythonでライフゲーム

def main(list):
    tmp = [ [0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0] ]
    for i in range(1, 4):
        for j in range(1, 4):
            cnt = count(list, i, j)
            if(list[i][j] == 1):
                if(cnt != 2 and cnt != 3):
                    tmp[i][j] = 0 # dead
                else:
                    tmp[i][j] = 1 # alive
            else:
                if(cnt == 3):
                    tmp[i][j] = 1 # born
                else:
                    tmp[i][j] = 0 # death
    return tmp
def count(list, row, col):
    ret = 0
    for i in range(-1, 2):
        for j in range(-1, 2):
            if(i == 0 and j == 0):
                continue
            if(list[row + i][col + j] == 1):
                ret += 1
    return ret

def printList(list):
    for i in range(1, 4):
        print list[i][1],list[i][2],list[i][3]
    print ""
list = [ [0, 0, 0, 0, 0], [0, 0, 1, 0, 0],[0, 0, 0, 1, 0],[0, 1, 1, 1,0], [0, 0, 0, 0, 0, 0] ]
printList(list)
list = main(list)
printList(list)

これで正しいのかは微妙ですが…。