la funzione list.index(x)
restituisce l'indice nell'elenco del primo elemento il cui valore è x
.Python: restituisce l'indice del primo elemento di una lista che rende una funzione passata true
c'è una funzione, list_func_index()
, simile alla funzione index()
che ha una funzione, f()
, come parametro. la funzione, f()
, viene eseguita su ogni elemento, e
, dell'elenco fino a f(e)
restituisce True
. quindi list_func_index()
restituisce l'indice di e
.
codewise:
>>> def list_func_index(lst, func):
for i in range(len(lst)):
if func(lst[i]):
return i
raise ValueError('no element making func True')
>>> l = [8,10,4,5,7]
>>> def is_odd(x): return x % 2 != 0
>>> list_func_index(l,is_odd)
3
c'è una soluzione più elegante? (E un nome migliore per la funzione)
+1 quello che ero nel mezzo della digitazione :-) – bobince
Wow, un'altra vittoria per l'oscurità. Non c'è niente da guadagnare usando un codice "intelligente" come questo. –
@JF: in effetti è quasi una trascrizione letterale della tua soluzione, solo con parentesi anziché "def". anche il valore di ritorno è davanti, invece che alla fine (un vantaggio, direi). e poi c'è anche la possibilità di prendere più risposte, qualcosa che la tua soluzione non può. quindi, qual è esattamente la ragione per cui devi ridurre la risposta del tuo concorrente? – Paul