Partage
  • Partager sur Facebook
  • Partager sur Twitter

Optimisation d'un script

    5 février 2013 à 10:22:31

    Bonjour,

    J'ai codé un petit script Python permettent de séparer les prénoms et les noms d'une chaîne du genre "Nom1 Nom2 N Nom4 P R E". Jusqu'à Nom4 ce sont des noms et après ce sont des prénoms. Donc les prénoms sont toujours en une seule lettre, tandis que les noms peuvent être en plusieurs et le dernier doit être en plusieurs.

    Mon script (fonctionnel) :

    <code type="python">def get_names(value):

        first_names, last_names = [], []

        no_more_first_name = False

        names = str(value[::-1]).split(' ')

        for name in names:

            if len(name) > 1 or no_more_first_name:

                last_names.append(name[::-1])

                no_more_first_name = True

            else:

                first_names.append(name)

        return first_names, last_names</code>

    Maintenant ma question est, comment optimiser ce code ? Peut-on le faire avec une regex ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      5 février 2013 à 22:40:24

      "optimiser" dans quel but ? mémoire, rapidité...

      en tous les cas, je doute que ce soit plus efficace avec des regex

      mon code:

      import itertools
      
      names = list(reversed(value.split(" ")))
      last_names = list(itertools.takewhile(lambda x: len(x)==1, names))
      first_names = names[len(last_names):]

      ça évite le parcours de la fin de la liste, et pour le début on ne teste qu'une condition.



      -
      Edité par Anonyme 5 février 2013 à 22:42:39

      • Partager sur Facebook
      • Partager sur Twitter

      Optimisation d'un script

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown