Given a Tic-Tac-Toe gamestate return all wins as text In a game of Tic-TacToe given a gamestate:
game_board = [ [1, 0, 1],
               [0, 1, 0],
               [0, 1, 0] ]

I have written the following piece of code to display the output of the gamestate in regards to wins:
game_board = [ [1, 1, 1],
               [0, 1, 0],
               [0, 1, 0] ]

# Horizontals
h = [str(i+1) + ' Row' for i, v in enumerate(game_board) if sum(v) == 3]

# Verticals
v = [str(i+1) + ' Col' for i in range(3) if sum([j[i] for j in game_board]) == 3]

# Diagonals
d = [['Left Diag', '','Right Diag'][i+1] for i in [-1, 1] if sum([game_board[0][1+i], game_board[1][1]], game_board[2][1-i]) == 3]

if any([h,v,d]):
    print('You won on:', h, v, d)
else:
    print('No win yet')

The output of this is:

You won on: ['1 Row'] ['2 Col'] []

I would like to know how my solution could be written in a more Pythonic manner?
Not sure about whether a solution could be more Pythonic, but I think it can be more efficient.  At present your code is iterating over each cell twice, before anything is printed.
I would suggest using a collection of possible winning strings.  You only need to iterate over the cells once and each time you encounter a 0 that row, col and if applicable, diagonal become invalid as a winning line.
After that, it's a simple matter of iterating over the strings and printing the ones that are valid.