Programar empate en Python

que tal! Es un problema simple quizas, pero llevo varios días intentando solucionarlo y lamentablemente no logro hacerlo.

Necesito programar un lista de ganadores en python.

Los datos que usé son: jugadores = [“Gabriel”,”Juan”,”Pedro”] puntos = [200,150,300]

Pude programarlo bien y la función final me devuelve un print con el puesto de cada jugador y los puntos que obtuvo. Por ejemplo, Puesto 1: El Jugador Nro 3, Pedro, con 300 puntos. Puesto 2: El Jugador Nro 1, Gabriel, con 200 puntos. Puesto 3: El Jugador Nro 2, Juan, con 150 puntos.

El problema surge cuando hay un empate.

Si, por ejemplo, los datos cambiaran a:

jugadores = [“Gabriel”,”Juan”,”Pedro”] puntos = [200,200,300]

El programa me devuelve: Puesto 1: El Jugador Nro 3, Pedro, con 300 puntos. Puesto 2: El Jugador Nro 1, Gabriel, con 200 puntos. Puesto 3: El Jugador Nro 1, Gabriel, con 200 puntos.

Como pueden ver, me toma dos veces el mismo jugador en distinto puesto e ignora al tercer jugador. Yo necesito que me devuelva los distintos jugadores en el mismo puesto. Puesto 1 Pedro con 300 puntos, Puesto 2 Gabriel y Juan con 200 puntos.

Otros datos que necesito obtener son: ganador=”nombre_ganador” puntaje_ganador = 300

En el caso de que hayan dos o más ganadores por empate se deben guardar todos los nombres y puntos. (Esos datos los voy a usar mas tarde para guardar y sumar los puntos del ganador (solo el puesto nro 1) a una suerte de ranking de puntos acumulados en una base de datos).

Espero alguien pueda ayudarme!

Desde ya, muchas gracias!