Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Membre éprouvé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    676
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 676
    Points : 422
    Points
    422

    Par défaut Action sur le dernier élément

    Bonjour,

    Dans la structure qui suit, je souhaite faire une action uniquement sur le dernier élément.

    Code :
    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
    Data= \
    [\
      {\
       # Essai1
       "name":"A",\
       "type":"Cfg",\
       "par":"essai1"\
      },\
      {\
       # Essai2
       "name":"B",\
       "type":"Cfg",\
       "par":"essai2"\
      },\
      {\
       # Essai3
       "name":"C",\
       "type":"Cfg",\
       "par":"essai3"\
      },\
    ]  
     
    for item in Data:
      # Action sur le dernier
      print(item)
    Je n'ai pas l'information dans ma boucle pour avoir quel est le dernier élément.
    Merci de ne pas me souffler de mettre un nombre "en dur"...
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  2. #2
    Membre émérite Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2009
    Messages : 592
    Points : 954
    Points
    954

    Par défaut

    Bonjour

    Citation Envoyé par Bayard
    Je n'ai pas l'information dans ma boucle pour avoir quel est le dernier élément.
    Sauf si tu boucles sur enumerate():

    Code :
    1
    2
    3
    4
    for i, item in enumerate(Data):
        if i == len(Data)-1:
            # code spécifique au dernier élément
        print(item)

  3. #3
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 599
    Points
    3 599

    Par défaut

    Bonjour,

    Pourquoi l'itération si seul le dernier élément importe ? (Data[len(Data)-1])

    @+
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Membre émérite Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : janvier 2009
    Messages : 592
    Points : 954
    Points
    954

    Par défaut

    Pourquoi l'itération si seul le dernier élément importe ? (Data[len(Data)-1])
    La "chose" à faire ne concerne pas forcément le dernier élément, mais un "truc" à faire (affichage ? autre ?) quand on atteint le dernier, quel qu'il soit. Enfin, peut-être.

    Mais bon, ce n'est qu'une hypothèse.

  5. #5
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 599
    Points
    3 599

    Par défaut

    Ma fois... Dans ce cas enumerate seras sans doute plus idiomatique qu'un
    Code :
    1
    2
    3
    4
    5
    >>> datalen = len(Data)-1
    >>> for item in Data:
    ...     if not datalen:
    ...         print(item)
    ...     datalen -= 1
    Ou tout try sur le StopIteration puisque nous n'avons pas d'objet externe.
    Merci d'utiliser le forum pour les questions techniques.

  6. #6
    Expert Confirmé Avatar de PauseKawa
    Homme Profil pro Patrice BLANGARIN
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    juin 2006
    Messages
    2 720
    Détails du profil
    Informations personnelles :
    Nom : Homme Patrice BLANGARIN
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2006
    Messages : 2 720
    Points : 3 599
    Points
    3 599

    Par défaut

    Citation Envoyé par PauseKawa Voir le message
    Ou tout try sur le StopIteration
    Ceci dit
    Code :
    1
    2
    3
    for item in data:
        # dostuf
    # item contient le dernier élément
    Merci d'utiliser le forum pour les questions techniques.

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 754
    Points : 793
    Points
    793

    Par défaut

    Citation Envoyé par PauseKawa Voir le message
    Ceci dit
    Code :
    1
    2
    3
    for item in data:
        # dostuf
    # item contient le dernier élément
    c'est aussi ce que j'aurai dit dans le cas où l'action se fait après le #dostuff, or d'après l'exemple du PO ce n'est pas le cas.

    pourquoi pas une boucle while

    Code :
    1
    2
    3
    4
    5
    while data:
        item = data.pop(0)
        if not data:
             #action sur le dernier
        #dostuff

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •