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 :

Action sur le dernier élément


Sujet :

Python

  1. #1
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    859
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 859
    Points : 714
    Points
    714
    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 : 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
    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 expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    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 : 792
    Points : 1 481
    Points
    1 481
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i, item in enumerate(Data):
        if i == len(Data)-1:
            # code spécifique au dernier élément
        print(item)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 725
    Points : 4 005
    Points
    4 005
    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 expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    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 : 792
    Points : 1 481
    Points
    1 481
    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.
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  5. #5
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Ma fois... Dans ce cas enumerate seras sans doute plus idiomatique qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    Ou tout try sur le StopIteration
    Ceci dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 046
    Points : 1 376
    Points
    1 376
    Par défaut
    Citation Envoyé par PauseKawa Voir le message
    Ceci dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/08/2011, 15h37
  2. [html:select] action sur le premier élément
    Par tomy29 dans le forum Struts 1
    Réponses: 10
    Dernier message: 05/11/2008, 10h49
  3. Lancer Action sur dernier enregistrement
    Par bostoli dans le forum Access
    Réponses: 5
    Dernier message: 13/02/2007, 10h43
  4. Réponses: 4
    Dernier message: 30/10/2006, 16h46
  5. Copie dernier élément de chaque type, sur la feuille suivante
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 26/07/2006, 09h59

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