import data # splitto la lista data per togliere gli spazi e gli "a capo" split = data.l.splitlines() # aggiungo una variabile per sommare i range somma = 0 # aggiungo una variabile per fare una lista di liste listona = [] # aggiungo variabile per calcolo lunghezza massima max_len = 0 for i in split: # splitto nuovamente per non avere il carattere - e separare i due numeri splot = i.split(" ") # definisco due nuove variabili per splittare le due stringhe asplot = [] bsplot = [] # associo alle due nuove stringhe i valori asplot = splot[0] bsplot = splot[1] # definisco le variabili per splittare i quattro valori di ogni stringa alfa = 0 beta = 0 gamma = 0 delta = 0 # associo ad ogni variabile uno dei quattro numeri dei due range alfa = int(asplot.split("-")[0]) beta = int(asplot.split("-")[1]) gamma = int(bsplot.split("-")[0]) delta= int(bsplot.split("-")[1]) # creo due liste vuote boxes1 = [] boxes2 = [] # associo alle due liste tutti i valori dei due range boxes1 = list(range(alfa,beta+1)) boxes2 = list(range(gamma,delta+1)) # creo una copia della prima lista new_boxes = boxes1 # per ogni elemento della seconda lista, che non e' presente nella prima lista, # lo aggiungo a new_boxes for l in boxes2: new_boxes.append(l) # rimuovo eventuali numeri duplicati no_duplicates_boxes = list(set(new_boxes)) # ordino dal minore al maggiore sort_boxes = sorted(no_duplicates_boxes) # aggiungo la lista di ogni riga ad una lista (lista di liste) listona.append(sort_boxes) # calcolo la lunghezza della lista len_listona = len(listona) # se la lunghezza della lista e' != 2 salto if len_listona == 2: # creo una variabile temporanea con la lista parzuiale dei numeri lista_par = [] # popolo la lista con tutti i numeri della lista di liste lista_par = sum(listona, []) # elimino numeri doppi e metto in ordine crescente lista_par_sort_unic = (sorted(set(lista_par))) # se nella lista di liste ci sono gia' due elementi (due righe di dati) # allora elimino il primo elemento del listona[0] # se il numero di elementi e' maggiore del caso precedente, allora aggiorno if len(lista_par_sort_unic) > max_len: max_len = len(lista_par_sort_unic) print ("Result :", max_len)