Ho una lista di oggetti. Voglio trovare un oggetto (primo o qualsiasi altro) in questo elenco che ha attributo (o metodo risultato - qualunque) uguale a value
.Trova oggetto in lista che ha attributo uguale ad un valore (che soddisfa qualsiasi condizione)
Qual è il modo migliore per trovarlo?
Ecco test case:
class Test:
def __init__(self, value):
self.value = value
import random
value = 5
test_list = [Test(random.randint(0,100)) for x in range(1000)]
# that I would do in Pascal, I don't believe isn't anywhere near 'Pythonic'
for x in test_list:
if x.value == value:
print "i found it!"
break
penso utilizzando generatori e reduce()
non farà alcuna differenza, perché ancora sarebbe scorrendo l'elenco.
ps .: l'equazione a value
è solo un esempio. Certo, vogliamo ottenere elementi che soddisfino qualsiasi condizione.
Ecco una buona discussione di questa domanda: http://tomayko.com/writings/cleanest-python-find -in-list-function –
Il post originale è __ridiculously__ non aggiornato, ma la seconda risposta corrisponde esattamente alla mia versione a una riga.Non sono convinto che sia meglio della versione di base del ciclo. – agf