Az egyik leggyakoribb művelet minden programozási nyelvben annak meghatározása, hogy egy adott karakterlánc tartalmaz-e részstringet. A Python számos módszerrel rendelkezik annak meghatározására, hogy egy adott karakterlánc tartalmaz-e karaktert. A Python „in” operátora, amely az összehasonlítási műveletek eszközeként szolgál, a leggyorsabb és legegyszerűbb módja annak, hogy meghatározzuk, hogy a Python-karakterlánc tartalmaz-e karaktert. Annak ellenőrzése, hogy egy karakterlánc tartalmaz-e részkarakterláncot, más Python-függvények, például a find(), az index(), a count() és egyebek használatával is előnyös.
A Python „in” operátorának használata
A Python 'in' operátora a leggyorsabb és legegyszerűbb módja annak meghatározására, hogy egy karakterlánc tartalmaz-e részkarakterláncot vagy sem. Ha a karakterlánc tartalmazza a karaktereket, ez a művelet egy igaz logikai értékkel tér vissza; egyébként hamis értéket ad vissza.
Kód
# Python program to show how to use the in operator to check if a string contains a substring # Creating a string str='Python Tutorial' print('The string 'tut' is present in the string: ', 'Tut' in str)
Kimenet:
The string 'tut' is present in the string: True
Ha a bal oldali argumentumként megadott karakterlánc szerepel a jobb argumentumként megadott karakterláncon belül, az „in” operátor True értéket ad. Két paramétert fogad el, mindkét oldalon egyet. A Python 'in' operátora külön kezeli a nagy- és kisbetűket, mivel ez egy kis- és nagybetűérzékeny operátor.
A __contains__() függvény használata
A Python String osztályának __contains__() függvénye arra is lehetőséget ad, hogy meghatározzuk, hogy az adott karakterlánc tartalmaz-e részkarakterláncot. A Python 'in' művelete meghívja a __contains__() metódust, ha implicit módon használják. Amikor egy osztályobjektum megjelenik az „in” és a „not in” operátorok jobb oldalán, a viselkedést a __contains__ metódus határozza meg. Bár megtehetjük, úgy döntünk, hogy nem használjuk kifejezetten ezt a módszert. Bár az aláhúzást első karakterként szereplő függvényeket szemantikailag privátnak tekintjük, az olvashatóság érdekében javasolt az „in” operátorok használata.
Kód
# Python program to show how to use the __contain__ method to check if a string contains a substring # Creating a string string = 'Python Tutorial' print('The string 'tut' is present in the string: ', string.__contains__('Tut'))
Kimenet:
The string 'tut' is present in the string: True
A Python str.find() metódusával
Használhatja a string.find() technikát is. A find() függvény határozza meg, hogy létezik-e részkarakterlánc az adott karakterláncban. Ha megtalálja, a find() függvény -1-et ad vissza; egyébként megadja a karakterláncon belüli részkarakterlánc kezdőindexét.
Kód
# Python program to find a character in a string and get its index # Creating a string string = 'Python Tutorial' index = string.find('T') if index != -1: print('The character 'T' is present in the string at: ', index) else: print('The character is not present in the string')
Kimenet:
The character 'T' is present in the string at: 7
Ez a megközelítés elfogadható; az str.find() azonban kevésbé Pythonic mód ennek a feladatnak a végrehajtására. Bár hosszabb és némileg zagyvabb, mégis teljesíti a feladatot.
Az str.count() metódus használata
Használja a Python count() függvényt, ha meg szeretné számolni egy adott részkarakterlánc előfordulásait egy karakterláncon belül. A függvény 0-t ad, ha nem találja az adott karakterláncban szereplő részstringet vagy karaktert.
Kód
# Python program to check a character is present in the string using the count() function # Creating a string string = 'Python Tutorial' count = string.count('o') if count != 0: print(f'The character 'o' is present in the string {count} times.') else: print('The character is not present in the string')
Kimenet:
The character 'o' is present in the string 2 times.