7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

A karakterláncokkal végzett munka gyakori feladat a Pythonban. Gyakran meg kell találnia, hogy egy karakterlánc tartalmaz-e másik karakterláncot.

A legegyszerűbb módszerek annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot, az 'in' operátor, a find() függvény és az index() metódus. A bonyolultabb forgatókönyvek megoldhatók reguláris kifejezésekkel vagy külső könyvtárral, mint például a Pandas.

Ez a cikk megmutatja:

  • négy egyszerű módszer

  • két bonyolultabb regex függvény

  • a Pandas könyvtárat használó módszer

Az egyes technikákat szintaxisuk és használatuk példáin keresztül ismerheti meg. Tippeket is kaphat arra vonatkozóan, hogy melyik módszer a legmegfelelőbb a különböző követelményeknek.

Kezdjük el!

Tartalomjegyzék

A Python karakterláncok alapjai

A Pythonban a karakterlánc olyan karaktersorozat, amely szöveges adatok megjelenítésére szolgál. Tartalmazhatnak betűket, számjegyeket, szimbólumokat és szóközöket.

Ez a Python egyik beépített adattípusa, és a következők valamelyikével hozható létre:

  • egyetlen idézőjel ('')

  • idézőjelek (" ")

  • hármas idézőjelek ("' "' vagy """ "")

A karakterláncok indexeltek, ami azt jelenti, hogy adott karakterekhez az indexszámukra való hivatkozással férhet hozzá. A kezdő index 0, ami azt jelenti, hogy egy karakterlánc első karakterének indexe 0, a másodiké 1, és így tovább.

Ezután megvizsgáljuk az alkarakterláncok ellenőrzésének módjait.

4 legegyszerűbb módja az alkarakterláncok ellenőrzésének

A Python számos módot kínál annak ellenőrzésére, hogy egy bizonyos részkarakterlánc létezik-e egy nagyobb karakterláncban. Egyesek összetettebbek, mint mások. A legalapvetőbb ellenőrzésekhez a legegyszerűbb módszerek az in operátor vagy a három karakterlánc módszer egyike.

  1. kezelőben

  2. find() metódus

  3. index() metódus

  4. count() metódus

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

1. A Kezelőben

Az „in” operátor a Pythonban egy egyszerű és intuitív módszer annak ellenőrzésére, hogy egy karakterlánc létezik-e egy másik karakterláncban. Ez az operátor ellenőrzi a tagságot, és logikai értéket ad vissza:

  • Igaz, ha az alkarakterlánc a fő karakterláncban található

  • Hamis, ha nem

Íme néhány minta kód:

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

Az „in” operátor megkülönbözteti a kis- és nagybetűket. Ez azt jelenti, hogy a kis- és nagybetűket különbözőként kezeli. A fenti kód nem találja a „hello” részstringet, ezért az operátor false értéket ad vissza.

Ha kis- és nagybetűket nem érző ellenőrzést szeretne végrehajtani, az ellenőrzés végrehajtása előtt konvertálhatja a fő karakterláncot és az alkarakterláncot is ugyanarra a kis- és nagybetűre:

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

Az in operátor hátránya, hogy nem adja meg az alsztring pozícióját a fő karakterláncon belül. Ehhez egy másik módszerre van szüksége ebben a részben. Olvass tovább…

2. Find() metódus

A find() metódus visszaadja az első indexet, amelynél a részkarakterlánc megjelenik, vagy -1-et , ha a részkarakterlánc nem található.

Meghívod a find() metódust egy s karakterláncon , argumentumként átadva a substring substringet . Íme egy példa:

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")

A keresés korlátozásához opcionálisan megadhat egy kezdő vagy záró indexet. Ennek a módszernek az a hátránya, hogy az első előfordulásnál leáll.

3. Index() módszer

Az index() metódus nagyon hasonlít a find() metódushoz, azzal a különbséggel, hogy ValueError hibaüzenetet vet fel, ha az alkarakterlánc nem található. Ez azt jelenti, hogy a hívást egy Try/Except szakaszba kell csomagolnia.

Az index() metódus használatához hívja meg egy s karakterláncon , és adja át argumentumként a substring substringet .

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")

Ez a metódus a szövegen belüli első részkarakterláncnál is megáll.

4. Count() módszer

A .count() metódus megszámolja, hogy egy részkarakterlánc hányszor fordul elő az eredeti karakterláncban. Ezt a számot reprezentáló egész számot ad vissza. Ha az alkarakterlánc nem található a fő karakterláncban, akkor 0-t ad vissza.

Íme egy egyszerű példa, amely az „o” betűt keresi a „Hello, world!” szövegben:

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

2 módszer a karakterláncok reguláris kifejezésekkel való párosítására

A (regex) használata kicsit bonyolultabb, mint az előző részben leírt módszerek. Ezek azonban több lehetőséget kínálnak az éppen tárgyalt szöveg keresésére és elemzésére.

A re modulon belül a két legegyszerűbb módszer a következő:

  1. keresés()

  2. Találd meg mindet()

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

1. re.Search()

A re modul search() függvénye egy mintát keres egy adott karakterláncban, és egy match objektumot ad vissza, ha egyezés található. Ellenkező esetben a None értéket adja vissza .

Alapértelmezés szerint a függvény megkülönbözteti a kis- és nagybetűket. A kis- és nagybetűk érzékenységének elkerülése érdekében használhatja a re.IgnoreCase jelzőt.

Íme egy egyszerű példa, amely feltételes utasításokat használ aszerint, hogy a karakterlánc megtalálható-e:

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")

Vegye figyelembe, hogy ez a módszer megtalálja az első egyezést, majd leállítja a keresést. Ha meg szeretné találni az összes egyezést, akkor ezen a listán a következő az Ön számára.

2. re.Findall()

Ez a módszer megkeresi a keresési minták összes előfordulását egy adott karakterláncban, és egy listát ad vissza, amely tartalmazza az összes találatot.

Ez a példa olyan mintát használ, amely megfelel egy karakterlánc egy vagy több számjegyének. A „123, 456, 789” szövegsor három számjegysorozatot tartalmaz.

import re 

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

print(numbers)

Ez a válasz a mintakódból: ['123', '456', '789'].

Hogyan találhatunk részkarakterláncokat pandákkal

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

A Pandas egy népszerű nyílt forráskódú adatelemző és -manipulációs könyvtár a Python számára. Adatstruktúrákat és funkciókat biztosít a strukturált adatok manipulálásához és elemzéséhez.

A Pandas által biztosított egyik elsődleges adatstruktúra a DataFrame. Ezzel a sokoldalú adatszerkezettel ellenőrizheti, hogy az egyik karakterlánc a másikban található-e.

A Pandas előnye, hogy olyan kódcsomagokat biztosít, amelyeket más programozási nyelveken is alaposan meg kellene írni . Pontosabban, sok erő van a Tartalma funkció belsejében.

str.contains() Funkció a Pandasban

Az str.contains() metódus azt teszteli, hogy egy adott minta vagy reguláris kifejezés szerepel-e egy DataFrame oszlop karakterláncában.

Íme egy példa, amely importálja a könyvtárat, és egy karakterláncot keres a karakterláncok listáján:

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)

Ebben a példában az 'an' részkarakterláncot keressük a 'gyümölcsök' oszlopban, és ennek megfelelően szűrjük a DataFrame-et. A kimenet a következő lenne:

  • 1 banán

  • 4 narancs

Ha további példákat keres a Pandák képességeire, nézze meg ezt a videót:

Tippek egy adott módszer kiválasztásához Pythonban

A módszer kiválasztása nagymértékben függ a feladat konkrét követelményeitől.

Íme négy ok, amiért az ebből a cikkből tanult módszerek közül válasszon egyet, valamint egy bónuszmódszert, amelyet ezen a blogon máshol is megtudhat:

  1. A feldolgozás sebessége

  2. Tudnia kell az alkarakterlánc helyét

  3. Tudnia kell az alkarakterlánc előfordulásának számát

  4. Összetett mintákat szeretne egyeztetni

  5. Szövegelemzés végzése

1. A feldolgozás sebessége

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

Az 'in' 0perator a legjobb választás, ha csak azt szeretné tudni, hogy létezik-e részkarakterlánc egy karakterláncon belül.

Erre a célra egyszerű, intuitív és gyors. Azonban nem ad információt a részkarakterlánc helyéről vagy számáról.

2. Az Alkarakterlánc helye

Használja a .find() vagy .index() metódusokat, ha tudnia kell egy részkarakterlánc első előfordulásának helyét a karakterláncon belül.

Mindkettő a részkarakterlánc első előfordulásának indexét adja vissza.

3. A részkarakterlánc száma

Használja a .count() metódust, ha meg szeretné tudni, hogy egy részkarakterlánc hányszor fordul elő egy karakterláncban.

4. Összetett minták

Ha összetett mintákat kell egyeztetnie, vagy kis- és nagybetűket nem érző kereséseket kell végrehajtania, a reguláris kifejezések a legrugalmasabbak. A re.search() függvény képes kezelni az egyszerű részkarakterláncokon túlmutató mintákat, és könnyen végrehajthat olyan kereséseket, amelyek nem különböznek egymástól.

A reguláris kifejezések azonban túlzásba eshetnek az egyszerű részkarakterlánc-ellenőrzéseknél, és lassabbak és bonyolultabbak is lehetnek a használatuk és a karbantartásuk.

5. Szövegelemzés végrehajtása

Tekintse meg cikkünket, amely bemutatja, hogyan kell dolgozni a textblob könyvtárral.

Használhatja a .tags függvényt a beszédrészek ellenőrzésére, az .ngram függvényt pedig olyan szavak keresésére, amelyek gyakran együtt szerepelnek egy dokumentumban.

Végső gondolatok

Hét módszert tanult meg annak ellenőrzésére, hogy egy szó vagy karakterlánc-objektum szerepel-e egy másikban. Ezek közé tartoztak a tagsági operátorok, a beépített függvények, a regex és a Pandas függvények.

Mindegyik módszer megfelelő bizonyos helyzetekben, de nem mindenre. Használja ezt a cikket a Python programozási nyelv elsajátításához, és használja a legjobb megoldást a karakterlánc-elemzési feladathoz.

Ne feledje, nincs mindenkire érvényes módszer. Mindegyik megközelítésnek megvannak a maga előnyei és sajátosságai, ezért nyugodtan válassza ki azt, amelyik illik stílusához vagy a megoldani kívánt problémához. Végső soron a Python célja, hogy megkönnyítse az életét, ezért használja ki rugalmasságát!


Scatter Plot In R Script: Hogyan készítsünk és importáljunk

Scatter Plot In R Script: Hogyan készítsünk és importáljunk

Ebből az oktatóanyagból megtudhatja, hogyan hozhat létre R szórványdiagram vizualizációt a LuckyTemplates alkalmazásban az R Script vizualizáció segítségével.

Emelje fel a külső eszközök menüjét a LuckyTemplates szolgáltatásban

Emelje fel a külső eszközök menüjét a LuckyTemplates szolgáltatásban

Ismerje meg a LuckyTemplates legjobb külső eszközeit, és tanulja meg, hogyan telepítheti őket LuckyTemplates asztalára. Ezek több lehetőséget biztosítanak a jelentések számára.

Hozzon létre gyors mérést a LuckyTemplates alkalmazásban a Quick Measures Pro segítségével

Hozzon létre gyors mérést a LuckyTemplates alkalmazásban a Quick Measures Pro segítségével

Ebben a blogban megismerjük és gyakoroljuk a Quick Measures Pro alkalmazását, amely egy nélkülözhetetlen külső eszköz a LuckyTemplates gyorsmérésekhez.

Mutasd az utolsó frissítés dátumát/időpontját a LuckyTemplates jelentéseiben

Mutasd az utolsó frissítés dátumát/időpontját a LuckyTemplates jelentéseiben

Ismerje meg, hogyan találhat pontos utolsó frissítési dátumot a LuckyTemplates jelentéshez. Mindössze egy M Code-ot és fejlett szerkesztőt kell használnia.

Pénzügyi év dinamikus szűrése a LuckyTemplates jelentésekben

Pénzügyi év dinamikus szűrése a LuckyTemplates jelentésekben

Ebben az oktatóanyagban arról fogunk beszélni, hogyan lehet hatékonyan szűrni több adatot pénzügyi évenként a LuckyTemplates jelentéseiben.

Power Query M nyelvi oktatóanyag és mesteri oktatóanyag

Power Query M nyelvi oktatóanyag és mesteri oktatóanyag

Ez az oktatóanyag megvitatja, hogyan lehet sikeresen implementálni egy M nyelvet, és hogyan lehet megoldani a Power Query szerkesztőben előforduló gyakori hibákat.

Pandák cseppindex oszlopa: Példákkal magyarázva

Pandák cseppindex oszlopa: Példákkal magyarázva

Pandák cseppindex oszlopa: Példákkal magyarázva

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

7 módszer annak ellenőrzésére, hogy egy Python-karakterlánc tartalmaz-e részkarakterláncot

A Power Automate dinamikus tartalom áttekintése

A Power Automate dinamikus tartalom áttekintése

Ismerje meg, mi az a Power Automate Dynamic Content, és hogyan teszi lehetővé a felhasználók számára az előző lépésekből származó mezőhivatkozások kiválasztását vagy kifejezések írását.

Fájl helyének megváltoztatása a LuckyTemplates lekérdezési paraméterével

Fájl helyének megváltoztatása a LuckyTemplates lekérdezési paraméterével

Ebből az oktatóanyagból megtudhatja, hogyan oszthat meg egy fájlt olyan személlyel, aki nem tagja a vállalatának, a LuckyTemplates sql lekérdezési paraméterével.