IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Spliter une chaîne suivant deux caractères


Sujet :

Python

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut Spliter une chaîne suivant deux caractères
    Bonjour,
    je voudrais éclater la chaîne "a/b\c/d\e\f/g" en le tableau ['a', 'b', 'c', 'd', 'e', 'f', 'g'].

    Existe-t-il une méthode pythonesque pour faire cela ?

    PS : la méthode consistant à remplacer les "/" en "\", puis à utiliser split ne m'intéresse pas.

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    chaine = r'a/b\c/d\e\f/g'
    res = [c for c in chaine[::2]]
     
    print res
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['a', 'b', 'c', 'd', 'e', 'f', 'g']
    Par contre il faut faire gaffe aux caractères '\', ils ont une signification particulière en python.

    Si on considère qu'ils servent à 'escape' les caractères, le résultat est différent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    chaine = 'a/b\c/d\e\f/g'
    res = [c for c in chaine[::2]]
     
    print res
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ['a', 'b', 'c', 'd', 'e', '/']
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # En faisant
    print "a/b\c/d\e\f/g"
    # j'ai obtenu
    a/b\c/d\e/g
    Donc \f est un caractère spécial. Il faut donc écrire pour s'affranchir du problème des caractères spéciaux.

    Ensuite on peut parcourir ch caractère par caractère par Reste à faire une list comprehension avec un test quelque part.
    Ça m'étonnerait que tu n'arrives pas à trouver tout seul.

    Mais je ne sais pas si c'est une méthode pythonesque car je ne sais pas ce qu'est une méthode pythonesque.

Discussions similaires

  1. Découper / isoler une string suivant un caractère
    Par ouranos21 dans le forum Langage
    Réponses: 2
    Dernier message: 01/02/2008, 12h23
  2. Réponses: 16
    Dernier message: 23/11/2007, 01h01
  3. Réponses: 5
    Dernier message: 15/11/2007, 14h44
  4. [RegEx] Récuperer une chaîne entre deux tags
    Par tixweb dans le forum Langage
    Réponses: 12
    Dernier message: 23/04/2007, 12h46
  5. Réponses: 14
    Dernier message: 28/08/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo