# Lista con las tuplas copiada del archivo "Lista-tuplas.dat".
lt = [(-4.18, 3.29), (0.75, -2.48), (2.15, 0.5), (1.66, 2.67), (1.81, -3.64), (-4.99, 3.99), (-0.85, 1.6), (0.67, -4.2), (-4.41, -3.27), (3.24, 0.76), (3.45, 1.42), (-1.65, -4.75), (-3.41, -0.43), (-3.61, -2.86), (4.5, -0.59), (-3.32, 0.01), (-3.75, 0.48), (-1.3, 3.92), (-1.92, -3.16), (-3.67, -3.07), (1.32, -2.11), (3.66, 0.81), (1.53, -4.71), (-2.01, 0.27), (1.54, 2.64), (1.23, 1.23), (2.46, 3.69), (-3.07, 4.22), (-2.79, -0.93), (-1.34, 1.56), (-2.48, -4.1), (-1.08, -3.45), (-1.41, 3.97), (3.89, -0.07), (3.17, -0.28), (-3.29, 1.56), (-1.69, 2.99), (4.65, 3.24), (2.96, 2.35), (2.83, -3.53), (-0.34, 0.98), (1.49, 2.25), (-0.52, -3.94), (-4.74, 0.28), (0.53, -2.42), (3.14, 2.56), (-2.68, -4.17), (-4.45, 0.13), (-4.59, -0.63), (2.58, 4.37)]

#-------------------------------------------------------------
# Función que determina a que región pertenece un punto (x,y).
def region(x,y):
    if (y > 0 and y > x and y > -x):
        return 1
    elif (y < 0 and y < x and y < -x):
        return 2
    else:
        return 3
#-------------------------------------------------------------

#-------------------------------------------------------------
# Función que determina la cantidad de puntos y los promedios
# de las componentes x e y en una región dada.
def promedios(dict,region):
    xs = 0
    ys = 0
    l = dict[region]
    long = len(l)
    for i in range(long):
        xs += l[i][0]
        ys += l[i][1]
    xprom = xs/long
    yprom = ys/long
    return (region,long,xprom,yprom)
#-------------------------------------------------------------

#-------------------------------------------------------------
# Programa.

# Diccionario vacío.
dic_tup = {"I":[],"II":[],"III":[]}

# Extracción de cada tupla de la lista, separación de las com-
# ponentes, evaluación de la función que determina a que re-
# gión pertenece el punto y agregado al diccionario.   
#-------------------------------------------------------------
for i in range(len(lt)):
    x = lt[i][0]
    y = lt[i][1]
    nreg = region(x,y)
    if (nreg == 1):
        dic_tup["I"].append((x,y))
    elif  (nreg == 2):
        dic_tup["II"].append((x,y))
    else:
        dic_tup["III"].append((x,y))

# Escritura del diccionario.
print("Diccionario:")
print(dic_tup)
print()

# Generacin de las tres tuplas con la región, la cantidad de 
# puntos y los promedios de las componentes usando la corres-
# pondiente función y escritura de los resultados.
for i in dic_tup.keys():
    print("Región,Nro. de ptos.,Prom. de x, Prom. de y:")
    resultados = promedios(dic_tup,i)
    print(resultados)
    print()
