Programmes Python sur les opérations de chaîne
Dans ce didacticiel, vous allez écrire des programmes Python pour résoudre les questions fréquemment posées sur opérations de chaîne.
Vous apprendrez à vérifier si les chaînes Python sont palindrome, anagrammes, et sont dans le cas de titre.
Chaînes Python : un examen rapide
En Python, les chaînes sont de puissants types de données intégrés. Ils peuvent stocker une séquence de caractères.
Indexation dans les chaînes Python : Comme tous les itérables Python, les chaînes sont également indexées à zéro. Ainsi, les indices valides pour une chaîne de longueur N sont 0, 1, 2 jusqu'à N - 1.
Python prend également en charge l'indexation négative pour accéder aux éléments à partir de la fin de la chaîne. Donc -1 est l'index du dernier caractère de la chaîne, -2 est l'index de l'avant-dernier caractère de la chaîne, et ainsi de suite.
Immuabilité des chaînes Python: De plus, les chaînes en Python sont immuables, vous ne peut pas les modifier en place. Cependant, vous pouvez appeler plusieurs méthodes de chaîne sur celles-ci et obtenir des copies de chaînes avec le résultat souhaité.
Maintenant que nous avons passé en revue les bases des chaînes Python, passons à la résolution de problèmes simples mais intéressants.
Commençons.
Check if a Python String is a Palindrome
Problème: étant donné une chaîne Python, vérifiez s'il s'agit ou non d'un palindrome.
Si oui, retournez True ; sinon, renvoie False.
Donc notre premier problème est de vérifier si oui ou non une chaîne donnée est un palindrome.
A palindrome est une chaîne qui se lit de la même manière de gauche à droite et de droite à gauche. Citons quelques exemples : voiture de course, référence, niveau, madame, radar, etc.
Voici les étapes pour résoudre ce problème :
- Obtenir un copie inversée de la chaîne et stockez-la dans une autre variable, si nécessaire.
- Comparez les valeurs de la chaîne d'origine et de la chaîne inversée.
- S'ils sont égaux, la chaîne est un palindrome. Alors reviens Les véritables, et arrêtez.
- Si les copies originales et inversées ne sont pas égales, la chaîne n'est pas un palindrome. Alors il faut revenir Faux.
L'opération clé consiste à obtenir une copie inversée de la chaîne. En Python, il existe plusieurs façons de procéder.
Cependant, nous passerons en revue deux approches :
- En utilisant tranchage de ficelle
- En utilisant l' renversé() fonction et le joindre() méthode
Comment inverser une chaîne Python à l'aide du découpage
La syntaxe <any_str>[start: stop: step]
renvoie une tranche de la chaîne <any_str>
de start
jusqu'à mais non compris stop
, avec pas de progression step
.
- Si vous omettez
start
, la tranche commence au début de la chaîne. - Si vous ne spécifiez pas le
stop
index, la tranche s'étend jusqu'à la fin de la chaîne. - Et les valeurs négatives de
step
peut être utilisé pour renvoyer des tranches à partir de la fin de la chaîne.
So <any_str>[::-1]
renvoie une copie inversée de la chaîne.
La cellule de code suivante contient la définition de la fonction is_palindrome()
.
Il prend une chaîne comme argument et renvoie True
or False
selon qu'il s'agit ou non d'un palindrome.
Ici, nous avons utilisé le découpage de chaîne pour obtenir une copie inversée de la chaîne.
def is_palindrome(this_str):
rev_str = this_str[::-1]
if (this_str == rev_str):
return True
else:
return False
▶️ Maintenant que nous avons défini la fonction, nous pouvons continuer et appeler avec n'importe quelle chaîne valide comme argument.
is_palindrome("racecar")
True
Dans la cellule de code ci-dessus, racecar
est un palindrome. Donc la fonction is_palindrome()
Retours True
comme prévu.
Maintenant, essayez d'appeler la fonction avec n'importe quelle chaîne qui n'est pas un palindrome, comme river
.
is_palindrome("river")
False
Et comme vous pouvez le voir, il revient False
, qui est correct. ✅
Comment inverser une chaîne Python en utilisant reversed() et join()
En Python, vous pouvez utiliser le join()
méthode avec la reversed()
fonction pour inverser une chaîne.
- L'
reversed()
La fonction renvoie un itérateur inverse à travers les caractères de la chaîne. - L'
join()
La méthode peut ensuite être utilisée pour joindre ces caractères dans l'ordre inverse.
En utilisant la méthode ci-dessus, vous pouvez réécrire le is_palindrome()
fonctionnent comme dans la cellule de code ci-dessous.
def is_palindrome(this_str):
rev_str = ''.join(reversed(this_str))
if (this_str == rev_str):
return True
else:
return False
Vous pouvez également utiliser la is_palindrome()
fonction à l'intérieur compréhension de la liste pour collecter tous les palindromes à partir d'une longue liste de chaînes.
str_list = ["refer","blue","level","12321","dragon"]
palindromes = [string for string in str_list if is_palindrome(string)]
print(palindromes)
# Output
['refer', 'level', '12321']
Voici comment fonctionne le code ci-dessus :
- Traverser
str_list
, appelis_palindrome()
sur chaque corde. - If
is_palindrome()
RetoursTrue
, ajoutez la chaîne aupalindromes
liste.
Comme vous pouvez le voir dans la sortie ci-dessus, palindromes
est une liste de toutes les chaînes palindromiques dans str_list
.
Check if Two Python Strings are Anagrams
Une autre question populaire que vous pouvez rencontrer lors des entretiens est de vérifier si oui ou non une paire de cordes str1
str2
sont des anagrammes.
On dit que deux cordes sont anagrammes si le nombre de caractères dans les deux chaînes est exactement le même. Cela signifie que vous pouvez obtenir l'une des chaînes en permuter or réarranger les caractères de l'autre chaîne.
Des exemples d'anagrammes incluent l'état-goût, le vase de sauvegarde, le coude en dessous, etc.
Comment vérifier les anagrammes à l'aide de l'objet compteur en Python
Un moyen simple et intuitif consiste à calculer le nombre d'occurrences de chaque caractère dans les deux chaînes. Et puis vérifiez si les comptes sont égaux.
Cela peut être fait d'autant plus facilement en utilisant le Counter
objet du itertools
module. la Compteur renvoie un dictionnaire Python : avec les caractères comme clés et le correspondant compte comme le valeurs.
Considérez les cordes "save"
"vase"
comme indiqué ci-dessous.
str1 = "save"
str2 = "vase"
Ici, c1
c2
sont des compteurs contenant le nombre de caractères des chaînes str1
str2
respectivement.
from collections import Counter
c1 = Counter(str1)
c2 = Counter(str2)
print(c1)
print(c2)
c1 == c2
# Output
Counter({'s': 1, 'a': 1, 'v': 1, 'e': 1})
Counter({'v': 1, 'a': 1, 's': 1, 'e': 1})
True
c1 == c2
Retours True
as str1
str2
sont des anagrammes.
En utilisant cette logique, nous pouvons maintenant continuer et définir la fonction are_anagrams()
avec deux paramètres word1
word2
. Dans le corps de la fonction, nous vérifions si Counter(word1) == Counter(word2)
.
def are_anagrams(word1, word2):
if Counter(word1) == Counter(word2):
return True
else:
return False
▶️ Pour vérifier, appelez are_anagrams()
avec str1
, str2
comme arguments. Comme str1
str2
sont des anagrammes ("save" et "vase"), la fonction renvoie True
, qui est correct.
are_anagrams(str1, str2)
True
Comment vérifier les anagrammes à l'aide de copies triées de chaînes
Il existe une autre façon de procéder.
Si deux chaînes sont des anagrammes, alors leur copies triées sont égaux.
On peut donc réécrire la fonction are_anagrams()
pour vérifier si la version triée de str1
est identique à la copie triée de str2
. S'ils sont égaux, alors les deux chaînes sont des anagrammes ; sinon, ils ne le sont pas.
En utilisant la méthode ci-dessus pour vérifier l'égalité des copies triées, nous pouvons réécrire la fonction are_anagrams()
comme suit.
def are_anagrams(word1, word2):
if sorted(word1) == sorted(word2):
return True
else:
return False
Faisons maintenant quelques appels de fonction.
- Les chaînes "coude" et "ci-dessous" sont des anagrammes et la fonction
are_anagrams()
RetoursTrue
. - Et "état" et "goûté" ne sont pas des anagrammes, et la fonction renvoie
False
.
are_anagrams("below","elbow")
True
are_anagrams("state","tasted")
False
Check if a Python String is in Title Case
Voici notre dernière question pour ce tutoriel.
Problème: Étant donné une chaîne : le nom d'une personne, avec son prénom et son nom.
Vous devez vérifier si la première lettre du prénom et du nom de famille est en majuscule.
Ce type de casse où la première lettre de chaque mot est en majuscule est appelé cas de titre.
Vous devez donc vérifier si le nom est dans la casse du titre :
1. Si oui, affichez un message indiquant que le formatage est en casse de titre.
2. Sinon, renvoyez une copie de la chaîne formatée dans la casse du titre
- Python a une méthode de chaîne intégrée
istitle()
, qui vérifie si une chaîne est dans la casse du titre.
<str>.istitle()
RetoursTrue
si la chaîne<str>
est formaté dans la casse du titre, sinon il renvoieFalse
.
- Et la méthode de chaîne de Python
title()
renvoie une copie de la chaîne formatée dans la casse du titre.
Alors maintenant, vous pouvez utiliser ces deux méthodes pour résoudre le problème.
Définir une fonction check_titlecase()
qui accepte name
comme argument.
- Vous pouvez appeler le
istitle()
méthode sur la chaîne d'entrée pour vérifier si elle est formatée en casse de titre. - If
True
, vous pouvez imprimer que la chaîne est déjà en casse de titre. - Sinon, vous pouvez appeler le
title()
et renvoie une copie de la chaîne dans la casse du titre.
La cellule de code suivante montre la définition du check_titlecase()
la fonction.
def check_titlecase(name):
if name.istitle():
print(f"'{name}' is already formatted in title case.")
else:
return name.title()
Appelons maintenant le check_titlecase()
méthode avec un argument.
check_titlecase("jane smith")
# Output
Jane Smith
Dans la sortie ci-dessus, vous pouvez voir que la chaîne "Jane Smith" est maintenant dans la casse du titre.
▶️ Prenons un autre exemple.
check_titlecase("agatha Christie")
# Output
Agatha Christie
Cette fois, appelons la fonction avec une chaîne en casse de titre.
check_titlecase("Grace Hopper")
# Output
'Grace Hopper' is already formatted in title case.
Nous sommes informés que la chaîne est formatée dans la casse du titre et que la fonction fonctionne comme prévu.
Conclusion
Résumons maintenant les problèmes dont nous avons discuté jusqu'ici.
- Pour vérifier si une chaîne est un palindrome, vérifiez si la chaîne et sa version inversée sont égales. Vous pouvez utiliser le découpage de chaînes ou des méthodes intégrées pour inverser les chaînes.
- Pour vérifier si deux chaînes sont des anagrammes, vérifiez si leurs copies triées sont égales. Et pour trier une chaîne, utilisez la fonction intégrée triée().
- Pour vérifier si un nom est en casse de titre, utilisez la méthode .istitle() pour vérifier et la .Titre() méthode pour obtenir une copie en casse de titre de la chaîne.
J'espère que vous avez apprécié ce tutoriel sur les chaînes Python. À l'étape suivante, apprenez à utiliser lister les compréhensions en Python ou en apprendre davantage sur le opérateur non égal en Python.
Bon apprentissage et codage !🎉
- Taggé dans:
- Python
Plus de bonnes lectures sur le développement
-
10 outils pour transformer vos feuilles de calcul Google en APIShalabh Garg le 22 avril 2022
-
10 meilleurs outils de développement et de test d'APIDurga Prasad Acharya le 21 avril 2022
-
NumPy reshape (): comment remodeler les tableaux NumPy en PythonBala Priya C le 26 avril 2022
-
9 meilleurs éditeurs WYSIWYG à intégrer dans votre application [convivial pour les développeurs]Durga Prasad Acharya le 19 avril 2022
-
7 langages de programmation à utiliser en science des donnéesDaniel Diaz le 18 avril 2022
-
Comment apprendre la solidité en 2022 – 11 cours/ressourcesDhruv Parmar le 14 avril 2022