Predstavitev
Obstaja več načinov, kako lahko odstranite narekovaje iz niza v Pythonu. Morda boste morali odstraniti vse narekovaje ali samo tiste, ki obkrožajo niz. Morda boste morali tudi odstraniti enojne ali dvojne narekovaje.
V tem kratkem članku smo sestavili obsežen seznam metod, s katerimi lahko odstranite narekovaje iz niza v Pythonu. Povsem od vas je odvisno, katerega boste uporabili. Upoštevajte, da rešitve, ki smo jih navedli tukaj, niso razvrščene od najboljše do najslabše. Vsaka rešitev je dobra, če ustreza vašim potrebam v konkretnem primeru.
Kako odstraniti vse narekovaje iz niza v Pythonu
Najprej si poglejmo, kako odstraniti vse narekovaje iz niza. Rešitve, navedene v tem razdelku, je mogoče spremeniti tako, da delujejo z enojnimi in dvojnimi narekovaji. Toda za namene tega članka recimo, da imamo primer niza, ki ima v sebi tri dvojne narekovaje:
example_str = '"This is a string" with quotes"'
V tem razdelku si bomo ogledali več načinov, kako odstraniti vse "
Iz example_str
.
str.replace()
Prvi pristop, o katerem bomo razpravljali, je uporaba str.replace()
metoda na example_str
. Sprejema dva argumenta – niz, ki ga želimo zamenjati, in nadomestni niz. V tem primeru bomo zamenjali dvojni narekovaj ("
) s praznim nizom:
new_str = example_str.replace('"', '')
print(new_str)
O str.replace()
uporabljen na ta način bo odstranil vse dvojne narekovaje iz example_str
.
Redni izrazi
Ta pristop uporablja pravilni izrazi za odstranitev vseh narekovajev iz niza. Preden začnemo uporabljati regularne izraze v Pythonu, moramo najprej uvoziti re
modul:
import re
Po tem lahko uporabimo re.sub()
metoda za nadomestek vse pojavitve narekovaja s praznim nizom:
new_str = re.sub('"', '', example_str)
print(new_str)
To nam bo dalo example_str
brez narekovajev v njem.
str.join()
O str.join()
je še ena metoda, ki jo lahko uporabimo za odstranitev vseh narekovajev iz niza v Pythonu. Ta rešitev ima nekoliko bolj zapleteno sintakso kot druge rešitve, če še niste seznanjeni z join()
metoda. V bistvu bomo šli čez example_str
znak za znakom in vsakemu, ki ni narekovaj, dodajte prazen niz. Tako bomo dobili example_str
brez narekovajev:
new_str = ''.join(c for c in example_str if c not in '"')
print(new_str)
Kako odstraniti narekovaje okoli niza
Doslej smo razpravljali o več pristopih, kako odstraniti vse narekovaje iz niza v Pythonu. To je samo eden od načinov za pogled na odstranjevanje narekovajev iz niza. Verjetno je pogostejša težava, kako odstraniti samo narekovaji, ki obkrožajo niz. O str.strip()
metoda je namenjena prav temu. Zato bomo razpravljali o str.strip()
metodo v tem razdelku.
Recimo, da imamo popolnoma enako example_str
kot v prejšnjem razdelku in želimo odstraniti samo prvi in zadnji narekovaj:
example_str = '"This is a string" with quotes"'
Uporaba str.strip()
z dvojnim narekovajem kot argumentom bo odstranil začetne in končne narekovaje iz example_str
:
Oglejte si naš praktični, praktični vodnik za učenje Gita z najboljšimi praksami, standardi, sprejetimi v panogi, in priloženo goljufijo. Nehajte Googlati ukaze Git in pravzaprav naučiti it!
new_str = example_str.strip('"')
print(new_str)
Opomba: Ne glede na to, koliko začetnih in/ali začetnih narekovajev je v nizu, je str.strip()
bo odstranil vse.
Poleg običajnega str.strip()
metoda, obstajata tudi dve njeni izpeljanki – str.lstrip()
in str.rstrip()
. Prvi odstrani vsi vodilni citati, drugi pa odstrani vsi zaključni narekovaji:
new_str = example_str.lstrip('"')
print(new_str)
new_str = example_str.rstrip('"')
print(new_str)
zaključek
V tem kratkem članku smo izčrpno pogledali, kako odstraniti narekovaje iz niza v Pythonu. Najprej smo razložili, kako z več različnimi metodami odstraniti vse narekovaje iz niza – str.replace()
, str.join()
in re.sub()
. Nato smo si ogledali str.strip()
metoda, pa tudi njene izpeljanke str.lstrip()
in str.rstrip()
.