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 :

Listes : Recherche l'index d'une liste


Sujet :

Python

  1. #1
    Membre très actif
    Inscrit en
    Septembre 2009
    Messages
    246
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 246
    Par défaut Listes : Recherche l'index d'une liste
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste = ['chien','chat','crocodile']
    for animal in liste:
        print animal + " se trouve à l'indice ??"
    Je cherche un moyen de connaitra l'indice des éléments d'une liste

    mon code doit afficher

    chien se trouve à l'indice 0
    chat se trouve à l'indice 1
    crocodile se trouve à l'indice 2

    un truc comme ça ne m'intéresse pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste = ['chien','chat','crocodile']
    for animal in range(len(liste)):
        print liste[animal] + " se trouve à l'indice " + animal

    Merci

  2. #2
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste = ['chien','chat','crocodile']
    for i, animal in enumerate(liste):
        print animal, " se trouve à l'indice ", i
    Tyrtamos

  3. #3
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> liste = ['chien','chat','crocodile']
    L'introspection est ton ami:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> dir(liste)
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
    >>> help(liste.index)
    index(...)
        L.index(value, [start, [stop]]) -> integer -- return first index of value.
        Raises ValueError if the value is not present.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> liste.index('chien')
    0
    >>> liste.index('crocodile')
    2
    >>> liste.index('capybara')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: list.index(x): x not in list

  4. #4
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Pour touver l'index j'utilise plutot une boucle while associer a la primitive len() que une boucle for, for parcourant le contenue de la liste et while peut etre plus précis si tu commence a chercher des indices de lettres car l'itérateur est personnalisable digitalement et peut eventuellement trouver des sous indexes si tu va plus loin. Disons que je préfère un cocktail i=0 associer a des len() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    liste = ['chien','chat','crocodile']
    i=0
    while i < len(liste) :
      print liste[i] + "se trouve a l'indice", i
      i += 1
    Le fait d'initialiser l'itérateur i a 0, les index commençant 0, a et a utiliser < qui est catégoriquement inférieur est pratique pour trouver des indices jusqu' avant len() qui lui donne la longeur d'unité rechercher commençant a 1.

  5. #5
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonsoir,
    Vu que ça m'a l'air d'être un code à l'ancienne que tu cherches. Essaie ceci:

    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
    # -*- coding: cp1252 -*-
    def get_index(val,lst):
        """Renvoi l'index de val lorsqu'il est contenu
    dans l'ensemble lst et -1 dans le cas contraire"""
        i=0
        limit = len(lst)
        while i<limit:
            if val==lst[i]:
                return i
            i+=1
        return -1
     
     
    print get_index(1,(2,3,4,5,6))
    print get_index(1,(0,1,2,3,4))
    print 
     
    liste = ['chien','chat','crocodile']
    for animal in liste:
        print animal + " se trouve à l'indice %d"%get_index(animal,liste)
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/07/2014, 08h58
  2. Réponses: 0
    Dernier message: 01/09/2012, 16h42
  3. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  4. Réponses: 4
    Dernier message: 01/03/2012, 19h50
  5. Réponses: 2
    Dernier message: 29/02/2012, 15h20

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