Înlocuire șir în Python | Înlocuire șir de caractere Python [2022]
Publicat: 2021-01-02Înlocuirea caracterelor și a șirurilor în Python este o sarcină crucială atunci când vine vorba de curățarea datelor sau procesarea textului. Este posibil ca datele dvs. să aibă probleme de formatare cu caractere de gunoi care trebuie eliminate, categoriile ar putea avea probleme de ortografie etc. De asemenea, în timp ce preprocesarea textului pentru probleme bazate pe NLP, înlocuirea șirurilor este pasul cel mai de bază și important în pregătirea datelor textuale.
În acest tutorial, vom analiza mai multe moduri de a înlocui diferite tipuri de șiruri. Dacă sunteți interesat să intrați în știința datelor, consultați certificările noastre în știința datelor. Până la sfârșitul acestui tutorial, veți cunoaște următoarele:
- Metoda Python replace().
- Metoda regex sub().
- join() si filter()
- Înlocuirea datelor numerice în șiruri
Cuprins
Python înlocuiește()
Metoda replace(old_str, new_str, count) constă din 3 argumente:
- old_str: șirul sau o parte a șirului care trebuie înlocuit
- new_str: șirul cu care trebuie înlocuit vechiul șir
- count: numărul de ori în care șirul anume trebuie înlocuit
Să trecem peste câteva exemple pentru a înțelege funcționarea.
Înlocuire unică
Mystr = „Acesta este un șir de probă” Newstr = Mystr.replace( 'este' , 'era' ) |
#Ieșire: Acesta a fost un șir de probă |
Dacă vă amintiți, șirurile din Python sunt imuabile. Deci, atunci când apelăm metoda înlocuire, aceasta face în esență un alt obiect șir cu datele modificate. Mai mult, nu am specificat parametrul count în exemplul de mai sus. Dacă nu este specificată, metoda înlocuire va înlocui toate aparițiile șirului.
Înlocuire multiplă
Mystr = „Acesta este un șir de probă” Newstr = Mystr.replace( „s” , „X” ) |
#Ieșire: ThiX iX un Xample Xtring |
Multiple înlocuiesc primele n apariții
Dacă doriți doar primele N apariții,
Mystr = „Acesta este un șir de probă” Newstr = Mystr.replace( „s” , „X” , 3 ) |
#Ieșire: ThiX iX un șir Xample |
Mai multe șiruri înlocuiesc
În exemplele de mai sus, am înlocuit un șir de un număr diferit de ori. Acum ce se întâmplă dacă doriți să înlocuiți șiruri diferite în același șir mare. Putem scrie o funcție eficientă pentru aceasta și o putem realiza folosind aceeași metodă.
Luați în considerare exemplul de mai sus, dar acum dorim să înlocuim „h”, „is” și „ng” cu „X”.
def MultipleStrings (mainStr, strReplaceList, newStr) : # Iterarea peste șirurile care urmează să fie înlocuite pentru elem în strReplaceList : # Verificarea dacă șirul este în șirul principal if elem în mainStr: # Înlocuiește șirul mainStr = mainStr.replace(elem, newStr) return mainStr |
Mystr = „Acesta este un șir de probă” Newstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , “X” ) |
#Ieșire: TXX X un eșantion striX |
Citiți: Tutorial Python
Înlocuirea cu regex
Regex-ul Python este un modul special pentru tratarea datelor text – fie că este vorba de găsirea subșirurilor, înlocuirea șirurilor de caractere sau orice altceva. Regex are funcția sub() pentru a găsi și înlocui/înlocui cu ușurință șirurile secundare. Să trecem peste sintaxa ei și câteva cazuri de utilizare.
Funcția regex.sub(pattern, replacement, original_string) are 3 argumente:
- model: subșirul care trebuie asortat și înlocuit.
- înlocuire: poate fi un șir care trebuie introdus sau o funcție apelabilă care returnează valoarea care trebuie introdusă.
- original_string: șirul principal în care subșirul trebuie înlocuit.
La fel ca și metoda înlocuire, regex creează și un alt obiect șir cu șirul modificat. Să trecem peste câteva exemple de lucru.
Eliminarea spațiului alb
Spațiile albe pot fi tratate ca caractere speciale și înlocuite cu alte caractere. În exemplul de mai jos, intenționăm să înlocuim spațiile albe cu „X”.
import re Mystr = „Acesta este un șir de probă” # Înlocuiți toate spațiile albe din Mystr cu „X” Newstr = re.sub( r”\s+” , 'X' , Mystr) |
#Ieșire: ThisXisXaXsampleXstring |
După cum vedem, toate spațiile albe au fost înlocuite. Modelul este dat de r”\s+”, ceea ce înseamnă toate caracterele spațiilor albe.
Eliminarea tuturor caracterelor speciale
Pentru a elimina toate caracterele speciale, vom trece un model care se potrivește cu toate caracterele speciale.
import re șir de import Mystr = „Tempo@@&[(000)]%%$@@66isit$$#$%-+Str” model = r'[' + string.punctuation + ']' # Înlocuiți toate caracterele speciale dintr-un șir cu X Newstr = re.sub(model, „X” , Mystr) |
#Ieșire: TempoXXXX000XXXXXX66isitXXXXXXStr |
Se elimină subșirul ca indiferent de majuscule și minuscule

În datele din viața reală, pot exista cazuri în care ar putea exista mai multe versiuni ale aceluiași cuvânt cu caractere majuscule și mici diferite. Pentru a le elimina pe toate, punerea tuturor cuvintelor separat ca model nu ar fi eficientă. Funcția regex sub() preia steag- ul re.IGNORECASE pentru a ignora cazurile. Să vedem cum funcționează.
import re Mystr = „Acesta ESTE un eșantion Istring” # Înlocuiți subșirul într-un șir cu o abordare care nu ține seama de majuscule și minuscule Newstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE) |
#Ieșire: Th** ** un eșantion **tring |
Eliminarea mai multor caractere folosind regex
Funcția regex poate elimina cu ușurință mai multe caractere dintr-un șir. Mai jos este un exemplu.
import re Mystr = „Acesta este un șir de probă” model = r'[hsa]' # Eliminați caracterele „h”, „s” și „a” dintr-un șir Newstr = re.sub(model, ” , Mystr) |
#Ieșire: Ti i mple tring |
Înlocuirea utilizând join()
O altă modalitate de a elimina sau înlocui caractere este să iterați șirul și să le verificați în funcție de anumite condiții.
charList = [ 'h' , 's' , 'a' ] Mystr = „Acesta este un șir de probă” # Eliminați toate caracterele din listă, din șir Newstr = ” .join((elem pentru elem în Mystr dacă elem nu este în charList)) |
#Ieșire: Ti i mple tring |
Înlocuirea utilizând join() și filter()
Exemplul de mai sus poate fi realizat și folosind funcția de filtrare.
Mystr = „Acesta este un șir de probă” charList = [ 'h' , 's' , 'a' ] # Eliminați toate caracterele din listă, din șir Newstr = „” .join(filtru ( lambda k: k nu în charList, Mystr)) |
#Ieșire: Am încercat destul |
Trebuie citit: Aplicații Python fascinante în lumea reală
Înlocuirea numerelor
De multe ori datele numerice sunt prezente și în șirurile de caractere care ar putea trebui eliminate și procesate separat ca o caracteristică diferită. Să trecem peste câteva exemple pentru a vedea cum acestea pot fi implementate.
Folosind regex
Luați în considerare șirul de mai jos din care trebuie să eliminam datele numerice.
Mystr = „Șir de exemplu 9211 din anul 20xx” model = r'[0-9]' # Potriviți toate cifrele din șir și înlocuiți-le cu șirul gol Newstr = re.sub(model, „” , Mystr) |
#Ieșire: Șir de probă din anul xx |
În codul de mai sus, folosim modelul de potrivire r'[0-9]' pentru a se potrivi pentru toate cifrele.
Folosind funcția join().
De asemenea, putem itera pe șir și filtra cifrele folosind metoda isdigit() care returnează False pentru alfabete.
Mystr = „Șir de exemplu 9211 din anul 20xx” # Iterează peste caracterele din șir și unește toate caracterele, cu excepția cifrelor Newstr = „” .join((articol pentru articol din Mystr dacă nu item.isdigit())) |
#Ieșire: Șir de probă din anul xx |
Folosind join() și filter()
În mod similar, putem pune și condiția de filtrare în funcția de filtrare pentru a returna doar caracterele care returnează True .
Mystr = „Șir de exemplu 9211 din anul 20xx” # Filtrați toate cifrele din caracterele din șir și alăturați caracterele rămase Newstr = „” .join(filtru ( articol lambda : nu articol.isdigit(), Mystr)) |
#Ieșire: Șir de probă din anul xx |
Inainte sa pleci
Am acoperit o mulțime de exemple care arată diferite moduri de a elimina sau înlocui caractere/spații albe/numere dintr-un șir. Vă recomandăm cu căldură să încercați mai multe exemple și moduri diferite de a face exemplele de mai sus și, de asemenea, mai multe exemple proprii.
Dacă sunteți curios să aflați despre python, știința datelor, consultați programul Executive PG în știința datelor de la IIIT-B și upGrad, care este creat pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie , 1-la-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.
Care este nevoie de metoda de înlocuire a șirurilor în Python?
Această funcție devine foarte utilă atunci când îi aplicați tehnici de curățare a datelor. Caracterele inutile sau gunoaie pot fi eliminate cu ușurință folosind această funcție. Înlocuirea șirurilor de caractere sau a caracterelor nu este folosită numai în curățarea datelor, ci și în problemele de procesare a NLP.
Este important să existe aceste tipuri de metode pentru a trata șirurile de caractere, deoarece întregul domeniu al științei datelor se ocupă cu bucăți uriașe de date.
Care sunt avantajele utilizării tipurilor de date șir?
Șirurile sunt utile deoarece puteți stoca cu ușurință cantități mari de date folosind acest tip de date. Python acceptă un număr bun de metode utile pentru a efectua operații pe șiruri. De asemenea, șirurile sunt modificabile în Python, ceea ce reduce generarea de erori și sunt, de asemenea, mai puțin costisitoare.
Șirul este unul dintre cele mai utilizate tipuri de date încorporate în Python. Nu numai în python, dar și multe alte limbi acceptă acest lucru ca tip de date predefinit și acceptă diferite metode de a opera pe ele.