"""
Created on Mon May 23 15:42:32 2022
@author: Lluís Vila UPC
"""

def ballsD_inv(id_city_D, id_balls_D):
    ballsD = {}
    for idn, ballL in id_balls_D.items():
        if idn in id_city_D:
            for ball in ballL:
                if ball not in ballsD:
                    ballsD[ball] = [ idn ]
                else:
                    ballsD[ball].append(idn)
    return ballsD


def ballsD_gen(id_city_D, id_balls_D):
    ballsD = {}
    
    for idn, ballL in id_balls_D.items():
        if idn in id_city_D:
            city = id_city_D[idn]
        else:
            city = 'X'
        ballsD_upd(ballsD, city, idn, ballL)
        
    return ballsD

def ballsD_upd(ballsD, city, idn, ballL):
    
    for ball in ballL:
        value = (idn, ball)
        if city not in ballsD:
            ballsD[city] = [ value ]
        else:
            ballsD[city].append(value)
        
def ballsD_sort(ballsD):
    for l in ballsD.values():
        l.sort(key=lambda x: (x[1], x[0]))

def ballsD_print(ballsD):
    for city, l in ballsD.items():
        print(city, ':', l)
