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 :

Copier une chaîne x fois


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2011
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2011
    Messages : 172
    Points : 88
    Points
    88
    Par défaut Copier une chaîne x fois
    Bonjour forum,

    Je cherche à copier une chaîne x nombre de fois, exemple:
    J'ai une chaîne de caractère (MAISON) et une autre chaîne de caractère (CHAT)
    Je multiplie ma chaîne TOTO 1,5 fois soit len("MAISON") / len(TOTO) = 6/4 = 1.5
    Donc le résultat attendu = "CHATCH"

    Merci de votre aide!

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Félicitations, le problème est posé d’une manière exceptionnellement claire, je dirais même lumineuse…

    Bon, si j’ai bien compris, il est en fait de répliquer N fois une chaîne X, N pouvant être un nombre non-entier*? Voici une méthode*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    N = 3.5
    X = "chat"
    N_int = int(N)  # We get the integer number of times we have to duplicate the whole string.
    N_rem = int((N - N_int) * len(X))  # We get the number of chars needed to complete.
    result = X * N_int + X[:N_rem]  # Gives "chatchatchatch"
    Note évidemment que le résultat ne tombe pas toujours "juste", il est dans ce cas tronqué à la valeurs inférieure (N = 3.33 donnera "chatchatchatc").

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 049
    Points : 1 380
    Points
    1 380
    Par défaut
    dans la même idée ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mot = "chat"
    i = 3.5
    (mot*(int(i)+1))[:int(len(mot)*i)]

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    Si le but est de répéter les caractères de la seconde chaîne jusqu'à ce que sa longueur soit égale à celle de la première chaîne, je propose ceci, plutôt que de jouer avec des flottants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> s1 = "MAISON"
    >>> s2 = "CHAT"
    >>> ''.join(s2[i % len(s2)] for i in xrange(len(s1)))
    'CHATCH'
    >>> # ou bien
    >>> from itertools import islice, cycle
    >>> ''.join(islice(cycle(s2),len(s1)))
    'CHATCH'
    >>> # ou encore
    >>> (s2*(len(s1)/len(s2)+1))[:len(s1)]
    'CHATCH'
    La dernière solution est similaire à celle de josmiley, mais sans passer par des flottants...

Discussions similaires

  1. [XL-2007] copier coller et sauter une ligne à chaque fois
    Par alexandrek dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/02/2011, 17h35
  2. Copier une chaîne de caractères
    Par gege2061 dans le forum Télécharger
    Réponses: 0
    Dernier message: 01/12/2010, 10h14
  3. [XL-2000] Copier une fois chaque occurrence d'une colonne
    Par Shikam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2010, 16h43
  4. [VBA]Copier le contenu d'une cellule x fois selon x
    Par fixou dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/04/2007, 23h58
  5. Réponses: 1
    Dernier message: 28/02/2006, 08h40

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