Python: como imprimir uma lista 2D que é formatada em uma grade?

Atualmente, eu fiz esse código

def grid_maker(h,w):
    grid = [[["-"] for i in range(w)] for i in range(h)]
    grid[0][0] = ["o"]
    print grid

>>>grid_maker(3,5) => [[['o'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']], [['-'], ['-'], ['-'], ['-'], ['-']]] 

Eu quero fazer outra função que terá na matriz 2d produzida e imprimi-lo de forma que ele esteja neste formato:

o----
-----
----- 

No entanto, não tenho certeza por onde começar.

questionAnswers(3)

yourAnswerToTheQuestion