def conocer_un_director(lst, lst2, director, etiqueta="director_name", criterio_calificacion="vote_average"): if lst['size'] == 0: print("La lista esta vacía") return 0 else: t1_start = process_time() #tiempo inicial coleccion = lt.newList("ARRAY_LIST") iterador_coleccion = it.newIterator(lst) while it.hasNext(iterador_coleccion): counter = it.next(iterador_coleccion) if director.lower() in counter[etiqueta].lower(): id_store = counter['id'] iterador_pelicula = it.newIterator(lst2) pelicula_convertida = conversor_entre_cvs( id_store, iterador_pelicula) lt.addLast(coleccion, pelicula_convertida) print(lt.lastElement(coleccion)['title']) promedio = promediar(coleccion, criterio_calificacion) t1_stop = process_time() print(f"tiempo de ejecucion: {t1_stop-t1_start} segundos") print( f"Peliculas totales:{lt.size(coleccion)}\nCalificacion promedio:{promedio}" )
def test_loading_CSV_y_ordenamiento(lst_books): """ Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto """ element = lt.lastElement(lst_books) assert element['goodreads_book_id'] == '4374400' element = lt.firstElement(lst_books) assert element['goodreads_book_id'] == '2767052' sort.selectionSort(lst_books, less) tam = lt.size(lst_books) assert tam == 149 element = lt.lastElement(lst_books) assert element['goodreads_book_id'] == '22557272' element = lt.firstElement(lst_books) assert element['goodreads_book_id'] == '1'
def test_addLast(lst, books): assert lt.isEmpty(lst) == True assert lt.size(lst) == 0 lt.addLast(lst, books[1]) assert lt.size(lst) == 1 lt.addLast(lst, books[2]) assert lt.size(lst) == 2 book = lt.firstElement(lst) assert book == books[1] book = lt.lastElement(lst) assert book == books[2]
def test_addLast(slt, movies): assert lst.isEmpty(slt) == True assert lst.size(slt) == 0 lst.addLast(slt, movies[0]) assert lst.size(slt) == 1 lst.addLast(slt, movies[1]) assert lst.size(slt) == 2 movie = lst.firstElement(slt) assert movie == movies[0] movie = lst.lastElement(slt) assert movie == movies[1]
def test_loading_CSV_y_ordenamiento(): """ Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto """ setUp() sort.selectionSort(lst_books, less) while not (lt.isEmpty(lst_books)): x = int(lt.removeLast(lst_books)['goodreads_book_id']) if not (lt.isEmpty(lst_books)): y = int(lt.lastElement(lst_books)['goodreads_book_id']) else: break assert x > y
def test_loading_CSV_y_ordenamiento_inv(): """ Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto """ setUp() sort.insertionSort(lst_movies,greater) while not (lt.isEmpty(lst_movies)): x = int(lt.removeLast(lst_movies)['id']) if not (lt.isEmpty(lst_movies)): y = int(lt.lastElement(lst_movies)['id']) else: break assert x < y
def test_loading_CSV_y_ordenamiento(): """ Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto """ setUp() sort.mergesort(lst_books,less) while not (lt.isEmpty(lst_books)): x = int(lt.removeLast(lst_books)['goodreads_book_id']) if not (lt.isEmpty(lst_books)): y = int(lt.lastElement(lst_books)['goodreads_book_id']) else: break assert x > y counter=1 iterador=it.newIterator(lst_books) while it.hasNext(iterador) and counter<=10: elemento=it.next(iterador) print(elemento) counter+=1
def conocer_un_genero(lst, director, seguro=False): if lst['size'] == 0: print("La lista esta vacía") return 0 else: t1_start = process_time() #tiempo inicial coleccion = lt.newList("ARRAY_LIST") iterador_coleccion = it.newIterator(lst) while it.hasNext(iterador_coleccion): counter = it.next(iterador_coleccion) if director.lower() in counter["genres"].lower(): lt.addLast(coleccion, counter) if not seguro: print(lt.lastElement(coleccion)['title']) promedio = promediar(coleccion, "vote_count") t1_stop = process_time() print(f"tiempo de ejecucion: {t1_stop-t1_start} segundos") print( f"Peliculas totales:{lt.size(coleccion)}\nCalificacion promedio:{promedio}" ) return coleccion
def GetMoviesByActor(lstactors, actorname, lstmovies): if lstactors["size"] == 0: print("La lista está vacía") return 0 else: movies = lt.newList("ARRAY_LIST") col = {} itcast = it.newIterator(lstactors) while it.hasNext(itcast): counter = it.next(itcast) if counter["actor1_name"].lower() == actorname.lower(): ids = counter["id"] itmovies = it.newIterator(lstmovies) movie = conversor_entre_cvs(ids, itmovies) lt.addLast(movies, movie) print(lt.lastElement(movies)["original_title"]) dire = counter["director_name"] if dire in col: col[dire] += 1 else: col[dire] = 1 if counter["actor2_name"].lower() == actorname.lower(): ids = counter["id"] itmovies = it.newIterator(lstmovies) movie = conversor_entre_cvs(ids, itmovies) lt.addLast(movies, movie) print(lt.lastElement(movies)["original_title"]) dire = counter["director_name"] if dire in col: col[dire] += 1 else: col[dire] = 1 if counter["actor3_name"].lower() == actorname.lower(): ids = counter["id"] itmovies = it.newIterator(lstmovies) movie = conversor_entre_cvs(ids, itmovies) lt.addLast(movies, movie) print(lt.lastElement(movies)["original_title"]) dire = counter["director_name"] if dire in col: col[dire] += 1 else: col[dire] = 1 if counter["actor4_name"].lower() == actorname.lower(): ids = counter["id"] itmovies = it.newIterator(lstmovies) movie = conversor_entre_cvs(ids, itmovies) lt.addLast(movies, movie) print(lt.lastElement(movies)["original_title"]) dire = counter["director_name"] if dire in col: col[dire] += 1 else: col[dire] = 1 if counter["actor5_name"].lower() == actorname.lower(): ids = counter["id"] itmovies = it.newIterator(lstmovies) movie = conversor_entre_cvs(ids, itmovies) lt.addLast(movies, movie) print(lt.lastElement(movies)["original_title"]) dire = counter["director_name"] if dire in col: col[dire] += 1 else: col[dire] = 1 promedio = promediar(movies, "vote_average") ordenado = sorted(col.items(), key=lambda x: x[1], reverse=True) print( f"peliculas totales: {lt.size(movies)}\nCalificación promedio: {promedio}\nDirector con más colaboraciones: {ordenado[0][0]}" )
def main(): """ Método principal del programa, se encarga de manejar todos los metodos adicionales creados Instancia una lista vacia en la cual se guardarán los datos cargados desde el archivo Args: None Return: None """ # lista = None # lista = lt.newList() #Usando implementacion linkedlist 'SINGLE_LINKED' lista = lt.newList( 'ARRAY_LIST') #Usando implementacion linkedlist 'ARRAY_LIST' while True: printMenu() #imprimir el menu de opciones en consola inputs = input( 'Seleccione una opción para continuar\n') #leer opción ingresada if len(inputs) > 0: if int(inputs[0]) == 1: #opcion 1 lista = loadCSVFile( "Data/test.csv") #llamar funcion cargar datos print("Datos cargados, ", lista['size'], " elementos cargados") print("Lista:", lista) if lista == None or lista[ 'size'] == 0: #obtener la longitud de la lista print("La lista esta vacía") else: print("La lista tiene ", lista['size'], " elementos") elif int(inputs[0]) == 2: #opcion 2 if lista == None or lista[ 'size'] == 0: #obtener la longitud de la lista print("La lista esta vacía") else: print("La lista tiene ", lista['size'], " elementos") elif int(inputs[0]) == 3: #opcion 3 if lista == None or lista[ 'size'] == 0: #obtener la longitud de la lista print("La lista esta vacía") else: criteria = input('Ingrese el criterio de búsqueda\n') counter = countElementsFilteredByColumn( criteria, "nombre", lista) #filtrar una columna por criterio print("Coinciden ", counter, " elementos con el crtierio: ", criteria) elif int(inputs[0]) == 4: #opcion 4 if lista == None or lista[ 'size'] == 0: #obtener la longitud de la lista print("La lista esta vacía") else: criteria = input('Ingrese el criterio de búsqueda\n') counter = countElementsByCriteria(criteria, 0, lista) print("Coinciden ", counter, " elementos con el crtierio: '", criteria, "' (en construcción ...)") elif int(inputs[0]) == 5: #opcion 5 if lista == None or lista[ 'size'] == 0: #obtener el ultimo nodo de la lista print("La lista esta vacía") else: print(lt.lastElement(lista)) elif int(inputs[0]) == 6: #opcion 6 if lista == None or lista[ 'size'] == 0: #obtener el ultimo nodo de la lista print("La lista esta vacía") else: print(lt.lastElementIterative(lista)) elif int(inputs[0]) == 7: #opcion 7 if lista == None or lista['size'] == 0: # sort print("La lista esta vacía") else: lt.mergeSort(lista, lessFunction) print(lista) elif int(inputs[0]) == 0: #opcion 0, salir sys.exit(0)