Jednou z nejčastějších operací v každém programovacím jazyce je určení, zda daný řetězec obsahuje podřetězec. Python má mnoho metod pro určení, zda daný řetězec obsahuje znak. Operátor 'in' Pythonu, který slouží jako nástroj pro porovnávací operace, je nejrychlejším a nejjednodušším způsobem, jak určit, zda řetězec Pythonu obsahuje znak. Kontrola, zda řetězec obsahuje podřetězec, také těží z použití dalších funkcí Pythonu, jako je find(), index(), count() a další.
Použití pythonského operátoru 'in'
Operátor 'in' v Pythonu je nejrychlejší a nejsnadnější způsob, jak určit, zda řetězec obsahuje podřetězec nebo ne. Pokud řetězec obsahuje znaky, vrátí tato operace logickou hodnotu true; jinak vrátí false.
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)
Výstup:
The string 'tut' is present in the string: True
Pokud je řetězec zadaný jako levý argument obsažen v řetězci zadaném jako pravý argument, operátor 'in' dává hodnotu True. Přijímá dva parametry, jeden na každé straně. Operátor 'in' v Pythonu zachází s velkými a malými písmeny odděleně, protože se jedná o operátor citlivý na velká a malá písmena.
Použití funkce __contains__().
Funkce __contains__() třídy String jazyka Python také poskytuje způsob, jak určit, zda daný řetězec obsahuje podřetězec. Operace 'in' Pythonu volá metodu __contains__(), když je použita implicitně. Když se objekt třídy objeví na pravé straně operátorů 'in' a 'not in', chování je definováno metodou __contains__. I když můžeme, rozhodneme se tuto metodu explicitně nepoužívat. Ačkoli funkce s podtržítky jako jejich prvním znakem jsou považovány za sémanticky soukromé, pro čitelnost se doporučuje používat operátory „in“.
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'))
Výstup:
The string 'tut' is present in the string: True
Použití metody str.find() Pythonu
Můžete také použít techniku string.find(). Funkce find() určuje, zda v daném řetězci existuje podřetězec. Pokud najde, funkce find() vrátí -1; jinak dává počáteční index podřetězce uvnitř řetězce.
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')
Výstup:
The character 'T' is present in the string at: 7
Tento přístup je přijatelný; použití str.find() je však méně pythonický způsob, jak tento úkol dokončit. I když je zdlouhavější a poněkud neuspořádanější, stále plní svůj úkol.
Použití metody str.count().
Pokud chcete spočítat výskyty konkrétního podřetězce v řetězci, použijte funkci Python count(). Funkce dává 0, pokud nemůže najít podřetězec nebo znak v daném řetězci.
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')
Výstup:
The character 'o' is present in the string 2 times.