Relever caractère dans chaines Python

Résolu
Bonjour,

Je voudrais en Python extraire les données d'une chaîne de caractère. Prenons exemple avec une variable que je vais appelé "d"
d = "Je vis dans une maison rouge car le soleil est rouge"

Je voudrais à partir de cette variable localiser les mots "rouges" que je stockerai dans une variable que je vais appeler "f"
print(f)
['23:27','47:51']

Je voudrai au moins savoir comment on fait pour passer de "d" à "f" et si ce n'est pas possible de me donner un moyen de localiser à chaque fois qu'il y a les mots "rouge"

4 réponses

  1. Contributeur
    bonjour,
    peux-tu compléter ton exemple avec le résultat attendu?
    1. J'ai vu des exemples de code qui faisait
      >>>d = "Je vis dans une maison rouge car le soleil est rouge"
      >>>c = "rouge"
      >>>s = d.find(c)
      >>>print(s)
      23
      

      Là, il m'indique 23 car c'est l'emplacement de la première lettre du premier rouge se trouvent en 23ème position (en partant de 0)
      Mais je souhaiterez avoir la position de début et de fin des mots recherchés.
      J'espère avoir été plus précis
      1. Bonjour

        la position de fin = position de début + longueur du mot-1
        1. Contributeur
          et, si tu veux retrouver toutes les occurrences, ne peux-tu pas, simplement, recommencer avec la partie de la phrase après le mot trouvé?
        2. Bonjour,

          Mais oui, c'est logique! Pourquoi n'y ai-je pas penser? Cependant je ne sais pas comment faire pour le réaliser sur les autres mots de la variable...
      2. Bonjour,

        J'ai trouvé une solution finale! La voici:
        s = "Je vis dans une maison rouge car le soleil est rouge"
        c = "rouge"
        lst = []
        for pos,char in enumerate(s):
            if(char == c):
                lst.append(pos)
        print(lst)
        

        Je met le sujet en résolue!
        1. Contributeur
          bravo d'avoir, tout seul, progressé aussi rapidement!