Sto scrivendo un codice che richiede di recuperare il limite inferiore di una chiave (per semplicità, ignorare le chiavi che si trovano sotto la chiave più piccola nella raccolta).map :: lower_bound() equivalente per la classe dict di python?
In C++, utilizzando std :: map (come il tipo di dati più comparabile) vorrei semplicemente utilizzare lower_bound() per restituire l'iteratore.
mio Pythonfoo che non è grande, ma sto indovinando che (nel caso in cui Python non dispone già di un modo di fare questo), questo sarebbe un buon uso di una funzione lambda ...
Che cosa è il modo Python di recuperare la chiave con limite inferiore per un dato indice?
Nel caso in cui la domanda è troppo astratto, questo è quello che sto effettivamente cercando di fare:
Ho un dict Python indicizzato in base alla data. Voglio poter usare una data per cercare il dict e restituire il valore associato al lowerbound della chiave specificata.
Snippet segue:
mymap = { datetime.date(2007, 1, 5): 'foo',
datetime.date(2007, 1, 10): 'foofoo',
datetime.date(2007, 2, 2): 'foobar',
datetime.date(2007, 2, 7): 'foobarbar' }
mydate = datetime.date(2007, 1, 7)
# fetch lbound key for mydate from mymap
def mymap_lbound_key(orig):
pass # return the lbound for the key
Non voglio veramente un ciclo tra i tasti, cercando la prima chiave < = condizione chiave, a meno che non v'è alcuna alternativa migliore ...