Mi chiedo se c'è un modo più veloce e meno dispendioso di iterare su un elenco di tuple, trovando la corrispondenza giusta. Quello che faccio è:iterazione rapida attraverso l'elenco delle tuple
# this is a very long list.
my_list = [ (old1, new1), (old2, new2), (old3, new3), ... (oldN, newN)]
# go through entire list and look for match
for j in my_list:
if j[0] == VALUE:
PAIR_FOUND = True
MATCHING_VALUE = j[1]
break
questo codice può richiedere molto tempo per l'esecuzione, a seconda del numero di elementi nella lista. Sono sicuro che c'è un modo migliore per farlo.
che sembra grande ma sarà permettimi solo di cercare per "vecchio valore". devo creare due dicts per poter cercare nei campi dei valori vecchi e nuovi? – memyself
@memyself: Sì, hai ragione. Se devi cercare * sia * vecchi che nuovi valori, dovrai creare due dicts. Ma immagino che non sia poi così male se tutto ciò che vuoi è una rapida occhiata. Ho aggiunto lo snippet di esempio per la creazione di reverse dict. –
Non sapevo di get(), questo mi ha reso la vita molto più semplice. – dgBP