<jupyter_start><jupyter_text>**Deel 1**<jupyter_code>ongeldig = []
for t in tickets:
    for va in t:
        v = int(va)
        geldig = False
        for regel in regels:
            if ((v >= int(regel[1][0])) & (v <= int(regel[1][1]))) | ((v >= int(regel[2][0])) & (v <= int(regel[2][1]))):
                geldig = True  
        if geldig == False:
            ongeldig += [int(v)]
sum(ongeldig)<jupyter_output><empty_output><jupyter_text>**Deel 2** Selecteer geldige tickets<jupyter_code>gt = []
for t in tickets:
    t = list(map(int, t))
    geldig = []
    for v in t:
        if v in ongeldig:
            geldig += [False]
        else:
            geldig += [True]
    if all(geldig):
        gt += [t]<jupyter_output><empty_output><jupyter_text>Transform lists naar nested list per categorie<jupyter_code>gt_cat = list(map(list, zip(*gt)))<jupyter_output><empty_output><jupyter_text>Creeer dictonary met categorie als key en list van mogelijke indices als value.<jupyter_code>i_cat = {}
r = []

for regel in regels:
    r = []
    for i,cat in enumerate(gt_cat):
        if all(((v >= int(regel[1][0])) & (v <= int(regel[1][1]))) | ((v >= int(regel[2][0])) & (v <= int(regel[2][1]))) for v in cat):
            r += [str(i)]
    i_cat[regel[0]] = r<jupyter_output><empty_output><jupyter_text>Maak functie die kijkt of er categorieen zijn met maar één mogelijke index en defineer die categorie.<jupyter_code>def checkindex(di, final, bekend):
    for x, y in zip(di.keys(), di.values()):
        yn =  np.setdiff1d(y, bekend)
        if len(yn) == 1:
            final[x] = yn.item()
            bekend += [yn]
    return(final, bekend)<jupyter_output><empty_output><jupyter_text>Loop door bovenstaande functie, met indices die al toegewezen zijn een categorie er telkens uitgefilterd<jupyter_code>f = {}
b = []
while len(f) < len(i_cat):
    f, b = checkindex(i_cat, f, b)<jupyter_output><empty_output><jupyter_text>Vind de waarden van op 'mijn ticket' en vermenigvuldig deze<jupyter_code>som = 1
for key in f:
    if 'departure' in key:
        index = int(f[key])
        som *= int(mijnticket[index])
print(som)<jupyter_output>1069784384303
StarcoderdataJupyterStructuredCleanDedup