[Python3]¿Cómo lo puedo optimizar?

Iniciado por reconFito, 14 Enero 2020, 03:34 AM

0 Miembros y 1 Visitante están viendo este tema.

reconFito

Perdón no me especifique bien ese ejercicio lo estoy haciendo en la página de HackerRank y ese error lo tira el interprete dcha página.
El RuntimeError se da cuando al diccionario se le añade un total de 100000 datos y se luego se hace una busqueda de igual magnitud.El script que hice le toma mucho tiempo en realizar la busqueda y no pasa la prueba.

engel lex

para ver tu codigo y el enunciado exacto del problema
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

reconFito

#12
Task
Given n names and phone numbers, assemble a phone book that maps friends' names to their respective phone numbers. You will then be given an unknown number of names to query your phone book for. For each name queried, print the associated entry from your phone book on a new line in the form name=phoneNumber; if an entry for name is not found, print Not found instead.

Note: Your phone book should be a Dictionary/Map/HashMap data structure.




Aqui ya inicialice algunas variables pero aun sigue el error

Código (python) [Seleccionar]

def phone_book():
   n = int(input())
   phone_book = {}  # dictionary
   for i in range(n):
       string = input().split()
       phone_book.update({string[0]: int(string[1])})
   return phone_book
# processing
def query(phone_book):
   i = 0
   _query = ""
   lenght = len(phone_book)
   for i in range(lenght):
       _query = input()
       if _query in phone_book:
           print("{0}={1}".format(_query, phone_book[_query]))
       else:
           print("Not found")
query(phone_book())


engel lex

#13
estoy viendo a pagina... y no, ignora el runtime error... runtime error simplemente significa "error en tiempo de ejecucion" es decir que tu error no está intrinseco en tu codigo, sino en tu logica, y ese error en python de nada sirve

bajo ese error debe estar la salida exacta del error

ejemplo

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

reconFito

A mi simplemente me sale
Compiler Message:
RuntimeError

Input (stdin)
10000
Lista de todos  los datos que se ingresaron

Expected output
Lista de todos los datos buscados

engel lex

no creo que sea por exceso de tiempo, ya que acabo de intentar algo que tarde mucho y da



hay algo fallando en otro lugar... el resto de tus test cases son exitosos?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

reconFito

Asi es pero no entiendo porque al primer intento salen todos los casos bien y luego se queda cargando y falla el primer caso