7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

Merkkien kanssa työskentely on yleinen tehtävä Pythonissa. Sinun on usein selvitettävä, sisältääkö merkkijono toisen merkkijonon.

Yksinkertaisimpia tapoja tarkistaa, sisältääkö Python-merkkijono alimerkkijonon, ovat 'in'-operaattori, find()-funktio ja index()-menetelmä. Monimutkaisemmat skenaariot voidaan ratkaista säännöllisillä lausekkeilla tai ulkoisella kirjastolla, kuten Pandas.

Tämä artikkeli näyttää sinulle:

  • neljä yksinkertaista tapaa

  • kaksi monimutkaisempaa regex-funktiota

  • menetelmä, joka käyttää Pandas-kirjastoa

Opit jokaisen tekniikan esimerkkien avulla niiden syntaksista ja käytöstä. Saat myös vinkkejä siitä, mikä menetelmä sopii parhaiten erilaisiin vaatimuksiin.

Aloitetaan!

Sisällysluettelo

Python-merkkijonojen perusteet

Pythonissa merkkijono on merkkijono, jota käytetään edustamaan tekstipohjaista tietoa. Ne voivat sisältää kirjaimia, numeroita, symboleja ja välilyöntejä.

Se on yksi Pythonin sisäänrakennetuista tietotyypeistä, ja se voidaan luoda käyttämällä jompaakumpaa:

  • yksittäiset lainausmerkit ('')

  • lainausmerkit (" ")

  • kolminkertaiset lainausmerkit ("' "' tai """ "")

Merkkijonot on indeksoitu, mikä tarkoittaa, että voit käyttää tiettyjä merkkejä viittaamalla niiden indeksinumeroon. Alkuindeksi on 0, mikä tarkoittaa, että merkkijonon ensimmäisen merkin indeksi on 0, toisen indeksi on 1 ja niin edelleen.

Seuraavaksi tarkastelemme tapoja tarkistaa osamerkkijonot.

4 yksinkertaisinta tapaa tarkistaa alimerkkijonot

Python tarjoaa monia tapoja tarkistaa, onko tietty osamerkkijono olemassa suuremmassa merkkijonossa. Jotkut ovat monimutkaisempia kuin toiset. Perustarkistuksia varten yksinkertaisimmat menetelmät ovat in-operaattori tai yksi kolmesta merkkijonomenetelmästä.

  1. operaattorissa

  2. Find() -menetelmä

  3. index() -menetelmä

  4. count() -menetelmä

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

1. Operaattorissa

Pythonin "in"-operaattori on yksinkertainen ja intuitiivinen tapa tarkistaa, onko jokin merkkijono toisessa merkkijonossa. Tämä operaattori tarkistaa jäsenyyden ja palauttaa loogisen arvon:

  • Tosi, jos osamerkkijono löytyy päämerkkijonosta

  • Väärää jos ei ole

Tässä on esimerkkikoodi:

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

"In"-operaattori on isojen ja pienten kirjainten välinen ero. Tämä tarkoittaa, että se käsittelee pieniä ja isoja merkkejä erilaisina. Yllä oleva koodi ei löydä alimerkkijonoa "hello", joten operaattori palauttaa false.

Jos haluat tehdä tarkistuksen, jossa kirjainkoolla ei ole merkitystä, voit muuntaa sekä pää- että alimerkkijonon samaksi kirjainkokoiseksi ennen tarkistuksen suorittamista:

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

In-operaattorin haittana on, että se ei tarjoa alimerkkijonon sijaintia päämerkkijonossa. Tätä varten tarvitset toisen menetelmän tässä osiossa. Jatka lukemista…

2. Etsi()-menetelmä

Find ()- menetelmä palauttaa ensimmäisen indeksin, jossa osamerkkijono esiintyy, tai -1 , jos alimerkkijonoa ei löydy.

Kutsut find()- metodia merkkijonossa s ja välität alimerkkijonon aliarvon argumenttina. Tässä on esimerkki:

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

Voit halutessasi rajoittaa hakuasi määrittämällä aloitus- tai loppuindeksin. Tämän menetelmän haittana on, että se pysähtyy ensimmäisellä kerralla.

3. Index()-menetelmä

Indeksi ()- menetelmä on melko samanlainen kuin find()- menetelmä, paitsi että se aiheuttaa ValueError- ilmoituksen, kun alimerkkijonoa ei löydy. Tämä tarkoittaa, että sinun tulee kääriä puhelu Kokeile/paitsi -osioon.

Jos haluat käyttää index()- menetelmää, kutsu sitä merkkijonolla s ja välitä alimerkkijonon ali argumenttina.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

Tämä menetelmä pysähtyy myös tekstin ensimmäiseen osamerkkijonoon.

4. Count()-menetelmä

.count () -menetelmä laskee, kuinka monta kertaa alimerkkijono esiintyy alkuperäisessä merkkijonossa. Se palauttaa tätä määrää edustavan kokonaisluvun. Jos alimerkkijonoa ei löydy päämerkkijonosta, se palauttaa arvon 0.

Tässä on yksinkertainen esimerkki, joka etsii kirjainta "o" tekstistä "Hei, maailma!":

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

2 tapaa yhdistää merkkijonot säännöllisiin lausekkeisiin

(Regex):n käyttäminen on hieman monimutkaisempaa kuin edellisen osan menetelmät. Ne antavat sinulle kuitenkin enemmän vaihtoehtoja käsittelemäsi tekstin etsimiseen ja analysointiin.

Kaksi helpointa tapaa re- moduulissa ovat:

  1. Hae()

  2. löydä kaikki ()

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

1. uudelleenhaku()

Re- moduulin search ()- funktio etsii kuviota annetusta merkkijonosta ja palauttaa hakuobjektin, jos vastaavuus löytyy. Muussa tapauksessa se palauttaa Ei mitään .

Oletusarvon mukaan funktiossa kirjainkoolla on merkitystä. Voit käyttää re.IgnoreCase- lippua välttääksesi kirjainten herkkyyden.

Tässä on yksinkertainen esimerkki, joka käyttää ehdollisia lausekkeita sen perusteella, löytyykö merkkijono:

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

Huomaa, että tämä menetelmä löytää ensimmäisen vastaavuuden ja lopettaa sitten haun. Jos haluat löytää kaikki osumat, seuraava listalla on sinua varten.

2. re.Findall()

Tämä menetelmä löytää kaikki hakumallin esiintymät tietyssä merkkijonossa ja palauttaa luettelon, joka sisältää kaikki osumat.

Tässä esimerkissä käytetään kuviota, joka vastaa yhtä tai useampaa merkkijonoa. Tekstimerkkijono "123, 456, 789" sisältää kolme numerosarjaa.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

Tämä on vastaus esimerkkikoodista: ['123', '456', '789'].

Kuinka löytää osamerkkijonoja pandoilla

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

Pandas on suosittu avoimen lähdekoodin tietojen analysointi- ja käsittelykirjasto Pythonille. Se tarjoaa tietorakenteita ja toimintoja, joita tarvitaan strukturoidun tiedon käsittelemiseen ja analysointiin.

Yksi Pandasin tarjoamista ensisijaisista tietorakenteista on DataFrame. Voit käyttää tätä monipuolista tietorakennetta tarkistaaksesi yhden merkkijonon toisen sisällä.

Pandasin etuna on, että se tarjoaa koodipaketteja, jotka sinun on kirjoitettava laajasti muilla ohjelmointikielillä. Erityisesti sisältää-toiminnon sisään on pakattu paljon tehoa.

str.contains() Funktio Pandasissa

Str.contains () -menetelmä testaa, sisältyykö määritetty kuvio tai säännöllinen lauseke DataFrame-sarakkeen merkkijonoon.

Tässä on esimerkki, joka tuo kirjaston ja etsii merkkijonoa merkkijonoluettelosta:

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

Tässä esimerkissä etsimme hedelmät-sarakkeesta alimerkkijonoa "an" ja suodatamme DataFrame-kehyksen sen mukaisesti. Tulos olisi:

  • 1 banaani

  • 4 oranssia

Jos etsit lisää esimerkkejä siitä, mitä Pandat voivat tehdä, katso tämä video:

Vinkkejä tietyn menetelmän valitsemiseen Pythonissa

Menetelmän valinta riippuu suurelta osin tehtäväsi erityisvaatimuksista.

Tässä on neljä syytä valita yksi menetelmästä, jonka olet oppinut tästä artikkelista, sekä yksi bonusmenetelmä, jonka opit muualla tässä blogissa:

  1. Käsittelyn nopeus

  2. Sinun on tiedettävä alimerkkijonon sijainti

  3. Sinun on tiedettävä osamerkkijonon esiintymien lukumäärä

  4. Haluat yhdistää monimutkaisia ​​​​kuvioita

  5. Tekstianalyysin suorittaminen

1. Käsittelyn nopeus

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

"in" 0perator on paras valinta, jos haluat vain tietää, onko merkkijonossa alimerkkijono.

Se on yksinkertainen, intuitiivinen ja nopea tähän tarkoitukseen. Se ei kuitenkaan anna tietoa alimerkkijonon sijainnista tai lukumäärästä.

2. Alimerkkijonon sijainti

Käytä .find()- tai .index()- menetelmiä, jos haluat tietää alimerkkijonon ensimmäisen esiintymän sijainnin merkkijonossa.

Molemmat palauttavat alimerkkijonon ensimmäisen esiintymän indeksin.

3. Alimerkkijonon määrä

Käytä .count()- menetelmää, kun haluat tietää, kuinka monta kertaa alimerkkijono esiintyy merkkijonossa.

4. Monimutkaiset kuviot

Jos sinun on yhdistettävä monimutkaisia ​​​​malleja tai suoritettava hakuja, joissa kirjainkoolla ei ole merkitystä, säännölliset lausekkeet ovat joustavimpia. Re.search ()- funktio pystyy käsittelemään yksinkertaisten alimerkkijonojen ulkopuolisia malleja ja voi helposti tehdä hakuja, joissa kirjainkoolla ei ole merkitystä.

Säännölliset lausekkeet voivat kuitenkin olla ylivoimaisia ​​yksinkertaisissa osamerkkijonotarkistuksissa, ja ne voivat olla myös hitaampia ja monimutkaisempia käyttää ja ylläpitää.

5. Tekstianalyysin suorittaminen

Tutustu artikkeliimme aiheesta , joka näyttää, kuinka voit työskennellä textblob-kirjaston kanssa.

Voit käyttää .tags- toimintoa tarkistaaksesi puheen osia tai .ngram- funktiota löytääksesi sanoja, jotka esiintyvät usein yhdessä asiakirjassa.

Lopulliset ajatukset

Olet oppinut seitsemän tapaa tarkistaa, sisältyykö sana tai merkkijono-objekti toiseen. Näitä olivat jäsenyysoperaattorit, sisäänrakennetut toiminnot, regex- ja Pandas-funktiot.

Jokainen menetelmä sopii joihinkin tilanteisiin, mutta ei kaikkiin. Käytä tätä artikkelia, kun hallitset Python-ohjelmointikielen ja käytät parasta ratkaisua merkkijonoanalyysitehtävääsi.

Muista, ettei ole olemassa yhtä kaikille sopivaa menetelmää. Jokaisella lähestymistavalla on omat etunsa ja omituisuutensa, joten voit vapaasti valita tyyliisi tai ongelmaan, jota yrität ratkaista, sopivan. Loppujen lopuksi Python tekee elämästäsi helpompaa, joten hyväksy sen joustavuus!


Scatter Plot In R Script: Kuinka luoda ja tuoda

Scatter Plot In R Script: Kuinka luoda ja tuoda

Tässä opetusohjelmassa opit luomaan R-sirontakaavion visualisoinnin LuckyTemplatesissa käyttämällä R Script -visuaalia.

Nosta ulkoiset työkalut -valikkoasi LuckyTemplatesissa

Nosta ulkoiset työkalut -valikkoasi LuckyTemplatesissa

Tunne LuckyTemplatesin parhaat ulkoiset työkalut ja opi asentamaan ne LuckyTemplates-työpöydällesi. Nämä antavat raporteillesi enemmän ominaisuuksia.

Luo nopea mittaus LuckyTemplatesissa Quick Measures Pron avulla

Luo nopea mittaus LuckyTemplatesissa Quick Measures Pron avulla

Tässä blogissa opimme ja harjoittelemme Quick Measures Prota, joka on välttämätön ulkoinen työkalu LuckyTemplatesin pikamittausten tekemiseen.

Näytä viimeinen päivityspäivämäärä/aika LuckyTemplates-raporteissasi

Näytä viimeinen päivityspäivämäärä/aika LuckyTemplates-raporteissasi

Opi keksimään tarkka viimeinen päivityspäivä LuckyTemplates-raportille. Sinun tarvitsee vain käyttää M-koodia ja edistynyttä editoria.

Tilikauden dynaaminen suodatus LuckyTemplates-raporteissa

Tilikauden dynaaminen suodatus LuckyTemplates-raporteissa

Tässä opetusohjelmassa kerron, kuinka voit tehokkaasti suodattaa useita tietoja tilikauden aikana LuckyTemplates-raporteissasi.

Power Query M -kielen opetusohjelma ja hallinta

Power Query M -kielen opetusohjelma ja hallinta

Tässä opetusohjelmassa keskustellaan M-kielen onnistuneesta käyttöönotosta ja yleisten virheiden ratkaisemisesta Power Query Editorissa.

Pandas Drop Index -sarake: selitetty esimerkein

Pandas Drop Index -sarake: selitetty esimerkein

Pandas Drop Index -sarake: selitetty esimerkein

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

7 tapaa tarkistaa, sisältääkö Python-merkkijono alimerkkijonon

Power Automate Dynaamisen sisällön yleiskatsaus

Power Automate Dynaamisen sisällön yleiskatsaus

Ymmärrä, mitä Power Automate Dynamic Content on ja kuinka sen avulla käyttäjät voivat valita kenttäviittauksia aiemmista vaiheista tai kirjoittaa lausekkeita.

Tiedoston sijainnin muuttaminen LuckyTemplatesin kyselyparametrin avulla

Tiedoston sijainnin muuttaminen LuckyTemplatesin kyselyparametrin avulla

Tässä opetusohjelmassa opit jakamaan tiedoston sellaisen henkilön kanssa, joka ei kuulu yritykseesi, käyttämällä sql-kyselyparametria LuckyTemplatesissa.