<div dir="ltr"><div><div>ma non c'è qualcosa di più semplice e già pronto all'uso ?<br></div>avevo provato con find, però mi dà in uscita solo la prima occorrenza (oppure mi restituisce -1 se non trova nulla).<br></div>
<div>Non c'è qualcosa di simile ?<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 26 giugno 2013 15:52, Marco Giusti <span dir="ltr"><<a href="mailto:marco.giusti@gmail.com" target="_blank">marco.giusti@gmail.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, Jun 26, 2013 at 03:22:40PM +0200, Riccardo mancuso wrote:<br>
> ciao a tutti,<br>
> vi propongo questo problema (premesso che io non ci sono riuscito).<br>
> Devo trovare in quali punti sono presenti dei termini all'interno di una<br>
> frase.<br>
</div>...<br>
<div class="im">> se voglio cercare la parola "via" essa sarà presente alla 3° ed alla 12° riga.<br>
><br>
> Come posso effettuare la ricerca con python ?<br>
><br>
> va bene, al posto della riga, anche la posizione vettoriale assoluta<br>
> (tenendo condo che il primo carattere ha posizione 0, il secondo 1 e<br>
> così via).<br>
><br>
> In sostanza alla fine vorrei avere un dizionario/vettore, con<br>
> l'indicazione della posizione di cui sopra.<br>
> Grazie in anticipo.<br>
<br>
</div>Questo per la posizione assoluta:<br>
<br>
        dct = {}<br>
        for noun in nouns:<br>
                lst = []<br>
                idx = text.find(noun)<br>
                while idx != -1:<br>
                        lst.append(idx)<br>
                        idx = text.find(noun, idx+1)<br>
                dct[noun] = lst<br>
<br>
<br>
E questo per le righe:<br>
<br>
        dct = {}<br>
        for noun in nouns:<br>
                for idx, line in enumerate(test.splitlines()):<br>
                        if line.find(noun) != -1:<br>
                                dct.setdefault(noun, []).append(idx)<br>
<br>
'enumerate' ha un secondo parametro opzionale che indica da quale indice<br>
partire, per esempio se le righe devono essere enumerate a partire da 1.<br>
<br>
Forse puoi invertire l'ordine dei loop nel secondo caso per effettuare<br>
una sola volta la partizione in righe. Inoltre c'è una disparità nei due<br>
casi: il primo riporta tutte le occorrenze di ciascuna parola mentre il<br>
secondo non fa' differenza se in una riga ci sono più occorrenze di una<br>
precisa parola.<br>
<br>
ciao<br>
<div class="HOEnZb"><div class="h5">m.<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br></div>