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 :

python: IndexError: list index out of range


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Par défaut python: IndexError: list index out of range
    J'ai une error d'index avec ma fonction split_data_into_reg_entries

    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
    def split_data_into_reg_entries(data):
              lst = []
        if data["Register_number"]:
            command_address_list = []
            response_address_list = []
            for i in range(0, len(data['command_address'])):
                for j in range(0, data['word_count'][i]):
                    command_address_list.append(data['command_address'][i])
                    response_address_list.append(data['response_address'][i])
     
            mapped = list(zip(data["Register_number"], data['Register_value'], command_address_list, response_address_list))
            for reg, value, cmd_addr, res_addr in mapped:
                tmp = data.copy()
                tmp['Register_number'] = reg
                tmp['Register_value'] = value
                tmp['command_address'] = cmd_addr
                tmp['response_address'] = res_addr
                lst.append(tmp)
        else:
            lst.append(data)
        return lst
    Voici l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      File "main.py", line 370, in <module>
        main()
      File "main.py", line 359, in main
        for item in split_data_into_reg_entries(data):
      File "main.py", line 161, in split_data_into_reg_entries
        for j in range(0, data['word_count'][i]):
    IndexError: list index out of range
    Avez-vous une idée de la raison de cette erreur ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    range, voir la doc : https://docs.python.org/fr/3/tutoria...range-function

    Le dernier élément fourni en paramètre ne fait jamais partie de la liste générée ; range(10) génère une liste de 10 valeurs, dont les valeurs vont de 0 à 9.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre averti
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2017
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 43
    Par défaut
    Merci de ton aide.

    Du coup, je fais comment pour palier à ce problème.

    Est ce que quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for j in range(0, data['word_count'][i+1]):
    Pourrait résoudre le problème ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Salut,

    Citation Envoyé par salwa17 Voir le message
    Avez-vous une idée de la raison de cette erreur ?
    Le i de data['word_count'][i] n'est pas cohérent avec le contenu de data['word_count']. Ce que devrait confirmer l'affichage de sa valeur et de la taille de data['word_count'] avec un simple print.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. IndexError: list index out of range
    Par cedricbzh dans le forum Général Python
    Réponses: 2
    Dernier message: 27/12/2019, 08h42
  2. [Python 3.X] fichier csv IndexError: list index out of range
    Par toto17 dans le forum Général Python
    Réponses: 8
    Dernier message: 16/12/2018, 22h20
  3. IndexError: List index out of range
    Par SmoZy dans le forum Général Python
    Réponses: 1
    Dernier message: 11/01/2018, 20h54
  4. IndexError: list index out of range
    Par Ouled dans le forum Général Python
    Réponses: 2
    Dernier message: 25/05/2017, 18h58
  5. Tache cron IndexError: list index out of range
    Par rene2200 dans le forum Général Python
    Réponses: 3
    Dernier message: 20/11/2009, 14h02

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