Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.python > #7578
| From | Paolo Ferraresi <fp.box@alice.it> |
|---|---|
| Newsgroups | it.comp.lang.python |
| Subject | Trovare gli indici degli elementi che corrispondono a un criterio in una lista |
| Date | 2015-06-29 22:30 +0200 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <mms9sb$gd7$1@speranza.aioe.org> (permalink) |
Ciao Ragazzi,
sto imparando Python e devo dire che mi la sintassi pulita che ha però
mi domando... so che i cicli for sono piuttosto lenti, quindi, se io ho
una lista che contiene un gran numero di elementi...
Se uso filter ottengo una lista con gli elementi che soddisfano un certo
criterio, se uso index ottengo la prima occorrenza, ma se volessi
ottenere una lista con gli indici degli oggetti che soddisfano un certo
criterio, come dovrei fare?
Io l'ho fatto così...
def find(f,lst):
return [i for i, x in enumerate(lst) if f(x)==True]
ad esempio se ho una lista di boolean e cerco gli indici i per cui
v[i]==True, farei...
lista_indici = find(lambda x: x, v)
Ma la mia domanda sorge spontanea... così come esistono algoritmi
superveloci perché in puro "C" (es numpy, la mia lista potrebbe essere
anche un array di numpy) c'è qualche libreria che fa questo o comunque
il modo che ho fatto è il modo più corretto ed efficiente per Python.
Ragazzi chiedo a voi, dato che io sono alle prime armi con Python.
Ciao e grazie.
Back to it.comp.lang.python | Next — Next in thread | Find similar
Trovare gli indici degli elementi che corrispondono a un criterio in una lista Paolo Ferraresi <fp.box@alice.it> - 2015-06-29 22:30 +0200 Re: Trovare gli indici degli elementi che corrispondono a un criterio in una lista Claudio_F <clau.fin@tin.it> - 2015-06-29 23:00 +0200 Re: Trovare gli indici degli elementi che corrispondono a un criterio in una lista Riccardo Lemmi <riccardo@reflab.com> - 2015-06-30 11:48 +0200
csiph-web