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 :

Parcourir un tuple 2 par 2 avec une boucle - et comparer


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut Parcourir un tuple 2 par 2 avec une boucle - et comparer
    bonjour,

    v1=[0, 5, 0, 3, 6, 3, 3, 4, 4, 4]
    v2=[6, 0, 6, 2, 6, 5, 2, 3, 3, 2]

    Je veux associer v1 et v2 par pas de 2 :
    0,5 à 6,0
    0,5 à 6,2
    ...

    0,3 à 6,0
    0,3 à 6,2
    ...

    Quelle syntaxe python peut convenir ?

    @+

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    >>> for i in range(0, len(v1)-1, 2):
    ...     for j in range(0, len(v2)-1, 2):
    ...             print('%s, %s ==> %s, %s' %(v1[i], v1[i+1], v2[j], v2[j+1])) 
    ... 
    0, 5 ==> 6, 0
    0, 5 ==> 6, 2
    0, 5 ==> 6, 5
    0, 5 ==> 2, 3
    0, 5 ==> 3, 2
    ....

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Une autre solution qui utilise zip:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    v1 = [0, 5, 0, 3, 6, 3, 3, 4, 4, 4]
    v2 = [6, 0, 6, 2, 6, 5, 2, 3, 3, 2]
     
    for x in list(zip(v1[::2],v1[1::2])):
        for y in list(zip(v2[::2],v2[1::2])):
            print(x, "<=>", y)
     
    (0, 5) <=> (6, 0)
    (0, 5) <=> (6, 2)
    (0, 5) <=> (6, 5)
    (0, 5) <=> (2, 3)
    (0, 5) <=> (3, 2)
    (0, 3) <=> (6, 0)
    (0, 3) <=> (6, 2)
    (0, 3) <=> (6, 5)
    (0, 3) <=> (2, 3)
    (0, 3) <=> (3, 2)
    (6, 3) <=> (6, 0)
    (6, 3) <=> (6, 2)
    (6, 3) <=> (6, 5)
    (6, 3) <=> (2, 3)
    (6, 3) <=> (3, 2)
    (3, 4) <=> (6, 0)
    (3, 4) <=> (6, 2)
    (3, 4) <=> (6, 5)
    (3, 4) <=> (2, 3)
    (3, 4) <=> (3, 2)
    (4, 4) <=> (6, 0)
    (4, 4) <=> (6, 2)
    (4, 4) <=> (6, 5)
    (4, 4) <=> (2, 3)
    (4, 4) <=> (3, 2)

  4. #4
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    J'ai utilisé aussi les deux boucles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> for i in range(0, len(v1)-1, 2):
    ...       for j in range(0, len(v2)-1, 2):
    C'est équivalent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    v1 = [0, 5, 0, 3, 6, 3, 3, 4, 4, 4]
    v2 = [6, 0, 6, 2, 6, 5, 2, 3, 3, 2]
     
    for n in range(0,len(v1),2):
        for m in range(0,len(v2),2):
            print v1[n],v1[n+1],v2[m],v2[m+1]
        print '---------------------'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Parcourir les checkbox d'une feuille avec une boucle
    Par tonton fred dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/05/2007, 13h47
  2. Réponses: 4
    Dernier message: 07/05/2007, 20h05
  3. Parcourir un champ avec une boucle
    Par gentoo dans le forum Access
    Réponses: 2
    Dernier message: 18/02/2007, 18h20
  4. Réponses: 1
    Dernier message: 08/11/2006, 12h16
  5. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13

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