Forum
>>
Principianti
>>
Aiuto:Eliminare più di una volta la sottostringa
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Coffee |
2018-03-19 12:04:49 - Aiuto:Eliminare più di una volta la sottostringa
|
Ciao a tutti sono nuovo in questo forum ed ho da poco iniziato a studiare python. Mi è stato assegnato un esercizio nel quale devo costruire una funzione che mi verifichi l'esistenza di una sottostringa in una stringa di partenza e, me la elimini tutte le volte che la incontra.
Esempio se inserisco come stringa: "mangio la mela e mangio il kiwi" e come sotto stringa da cercare: "mangio" l'output dovrà essere: "la mela e il kiwi" Ora io ho costruito questa funzione ma facendo qualche tentativo mi sono accorto che cancella una sola volta la sottostringa nella prima posizione in cui la trova. quindi output: "la mela e mangio il kiwi". Come posso modificare il mio programma in modo da risolvere questo problema? Purtroppo mi è espressamente chiesto nell'esercizio di non usare funzioni già presenti tipo split, replace,ecc. ecco la mia funzione anche in allegato. Grazie a tutti in anticipo. def sottrai(stringa1,stringa2): STR = "" if (len(stringa1)) < (len(stringa2)): return elif stringa2 == "": return stringa1 else: indice = stringa1.find(stringa2) print indice contatore = stringa1.count (stringa2) print contatore if contatore>=1: for i in range(indice): STR = STR + stringa1 for i in range (indice+1+len(stringa2),len(stringa1)): STR = STR + stringa1 cont-=1 return STR |
|
Scritto da EL DIABLO |
2018-03-19 13:05:11 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
Sei in classe con Cherry?
Io lo risolverei in modo figo, con una funzione ricorsiva. --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-19 13:12:08 --- |
|
Scritto da Coffee |
2018-03-19 13:34:46 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
Ciao Ὅμηρος 蟒蛇 grazie della tua risposta.
probabile dato che molti in classe hanno problemi con l'esercizio per quanto riguarda la funzione ricorsiva si ci avevo pensato e ho fatto delle prove ma non riesco ad impostarla correttamente. |
|
Scritto da EL DIABLO |
2018-03-19 21:31:22 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
Strano, fare funzioni ricorsive è la cosa più facile del mondo
Ho mantenuto la tua impostazione solo dove era sensata. Questo codice funziona sia in python3 che in python2 (che è quello che stai usando, e dovevi specificarlo). def sottrai(stringa1, stringa2) : if stringa2 not in stringa1 : return stringa1 STR = "" indice = stringa1.find(stringa2) for i in range(indice) : STR = STR + stringa1[ i ] for i in range(indice + len(stringa2), len(stringa1)) : STR = STR + stringa1[ i ] return sottrai(STR, stringa2) --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-19 21:52:22 --- |
|
Scritto da Coffee |
2018-03-19 22:24:26 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
grazie!comunque si, mi sono confrontato con Cherry ed è una mia compagna alla quale avevo chiesto dei consigli per scrivere la mia funzione inizialeXD
grazie ancora! |
|
Scritto da EL DIABLO |
2018-03-19 22:54:56 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
In questo periodo sto studiando e svolgendo esercizi su funzioni e funzioni ricorsive. Uno più, uno meno...
Domani potreste proporre al prof. come esercizio questo: Realizzare una funzione che ordini tutte le lettere di una stringa. Ad esempio, la stringa "ciao" deve essere così ordinata: "acio". |
|
Scritto da EL DIABLO |
2018-03-20 01:18:35 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
Più di così, per ora, non saprei come accorciarla.
def sottrai(a, b) : if b not in a : return a return sottrai(a[:a.find(b)] + a[a.find(b) + len(b):], b)L'ho risolto in modo figo? --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-20 12:55:48 --- |
|
Scritto da EL DIABLO |
2018-03-20 21:48:48 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
Fighissssssimoooooooo!!!!!!!
Il prof. è rimasto a bocca aperta Dovreste almeno regalarmi un paio di confezioni di pocket Coffee e di mon Chérry. |
|
Scritto da Daniele aka Palmux |
2018-03-21 02:06:33 - Re: Aiuto:Eliminare più di una volta la sottostringa
|
|
Pagina: 1
Esegui il login per scrivere una risposta.