Résolue

Split exercice

# Chaînes de caractères # Fonctions

Bonjour, je ne comprends pas l'utilité de la fonction split dans cet exercice ? Comment faire pour solutionner le velit pour que ça soit compter ?

None

Hello Imane,


la méthode split te permet de transformer une chaine de caractères en liste. Pour faire cette transformation, python va couper ta chaine de caractères en mots en utilisant le paramètre que tu lui demandes. Cf exemple ci dessous.


In [18]: text = "Bonjour je m'appelle P-A, j'aime utiliser le langage Python, j'aime aussi partager."

# je vais découper ma phrase en utilisant le caractère "," comme séparateur
In [19]: text.split(",")
Out[19]:
["Bonjour je m'appelle P-A",
 " j'aime utiliser le langage Python",
 " j'aime aussi partager."]


par défaut, quand tu ne renseignes pas de séparateur dans la méthode split, python va couper à chaque espace


In [20]: text.split()
Out[20]:
['Bonjour',
 'je',
 "m'appelle",
 'P-A,',
 "j'aime",
 'utiliser',
 'le',
 'langage',
 'Python,',
 "j'aime",
 'aussi',
 'partager.']


Si on revient à l'exercice, après toutes les modifications au niveau de la ligne 3, ton lorem n'est plus qu'une longue chaine de caractères dont chaque mot est séparé par un espace.


Donc quand tu fait lorem.split() , tu transformes cette chaine de caractère en liste de mots. Il ne te reste donc plus qu'à appliquer la méthode .count(mot_cible) qui s'applique sur une liste.


Si tu ne connais pas encore le mode debug pour voir les étapes du code n'hésites pas à mettre des print après chaque instruction pour comprendre chaque étape.


Dis nous si ce n'est toujours pas clair.



C'est noté, merci pour ton retour.

Du coup quand je fais lorem.split(), la chaîne de caractère se transformera en liste de mots dont le mot "velit".

Ma question, est-ce que le mot velit sera pris en compte dans avec la fonction .count("elit") même s'il y a un v dans le mot elit ?

Bonjour Imane.

C'est justement toute la difficulté de l'exercice! Sans traitement particulier, "count" va renvoyer 2 occurences (elit et velit). Il faut donc trouver comment faire pour "se débarrasser" de "velit".

Cordialement.

Oui voilà Johan a raison.


Du coup je me rends compte que j'étais un peu hors sujet avec ma réponse c'était pas tout à fait ta question.


Du coup regardes le comportement ci dessous:


In [1]: chaine = "abc ab a"

In [2]: chaine_liste = chaine.split()

In [3]: chaine_liste.count("a")
Out[3]: 1


il va chercher une correspondance exacte.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.