Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
3.0 kB
1
Indexable
Never
import csv


#EJERCICIO 1 

def obtener_equipos(csv_reader: csv) -> list[ str ]:
    '''
    Obtenemos todos los equipos diferentes del archivo CSV.
    '''
    equipos = []
    cursor: int = 0
    '''
    Guardo las posiciones donde se encuentra este equipo en el fichero csv para
    hacer los siguientes pasos de forma más eficiente.
    '''
    lineas_equipo: dict[equipos : str] = []
    for row in csv_reader:

        if cursor == 0: 
            '''
            No procesamos la primera línea del CSV pues contiene los nombres de 
            las columnas.
            '''
            cursor += 1
            continue

        for i in range(0,2): 

            if row[i] not in equipos:
                equipos.append(row[i])
                

        #(equipos.append(row[i] ) for i in row[0:1] if row[i] not in equipos) 

        cursor += 1 

    return equipos, lineas_equipo

    
def obtener_resultados(equipo: str, lineas: list[ list [ str ]]) -> list[ str ]:

    resultados: list[ str ] = []
    
    for linea in lineas:
        if linea == linea[0]:
            resultados.append(linea[2])
    
    return resultados


def obtener_contrincantes(equipo: str, row: list[ str ]) -> list[ str ]:

    contrincantes: list[ str ] = []

    return contrincantes   

def obtener_diccionario(equipo: str, csv_reader: csv, equipos: list[ str ]) -> dict:

    diccionario_equipo: dict[str : list[ str ]] = {}
    contrincantes_lineas: list[ str ] = []

    for row in csv_reader:
              
        for i in range(0,1):

            if row[i] == equipo:
                row_aux = row
                row.remove(i)
                contrincantes_lineas.append(row_aux)

    for equipo_2 in equipos:   
        diccionario_equipo[equipo_2] = obtener_resultados(equipo_2, 
                                                    contrincantes_lineas
                                                    )   
    return diccionario_equipo   
        
    


def ej_1 (ruta: str) -> dict[ str : dict[ str : list[ str ] ] ]:

    with open("prueba.csv", encoding = "utf_8")  as file:

        csv_reader: csv = csv.reader( file, delimiter = ',')
        equipos: list = obtener_equipos(csv_reader)
        dict_return: str = {}
        
        for equipo in equipos:

            dict_return[equipo] = obtener_diccionario(equipo, 
                                        csv_reader,
                                        equipos
                                        )
            #obtener_contrincantes(equipo, csv_reader)
            #resultados: dict = obtener_resultados(equipo, csv_reader)
            dict_return[equipo] = obtener_diccionario(equipo, csv_reader, equipos)


            pass
            
        file.close()
        return dict_return



#EJERCICIO 2

def probabilidad_victoria(diccionario: dict, seleccion: str, contrincante: str):
    
    pass

#EJERCICIO 3

class Partido():

    pass