0
votes

Comment résoudre les index de la liste hors de portée de Python?

Je veux lire un fichier CSV Enregistrer dans la liste et compter les numéros de chaque mot, mais j'ai eu une erreur d'erreur est à propos de l'index de la liste hors de portée dans Python.

J'ai 21291918 rangées dans le fichier CSV. Ce qui suit est une capture d'écran du fichier CSV. P>

 Entrez la description de l'image ici p>

 Entrez la description de l'image ici p>

Ce qui suit est mon code: p> xxx pré>

Lorsque j'exécute ce code, j'ai eu le problème suivant: p>

Traceback (most recent call last):
  File ".\count_All_Other_Content.py", line 38, in <module>
    column = [row[0] for row in reader]
  File ".\count_All_Other_Content.py", line 38, in <listcomp>
    column = [row[0] for row in reader]
IndexError: list index out of range


3 commentaires

On dirait qu'il y a une ligne vide dans le fichier. Alors, vérifiez-le.


Comme Tom dit, certaines lignes peuvent simplement être une liste vide, de sorte que l'index 0 n'existe même pas. Vous pouvez les filtrer. colonne = [ligne [0] pour la ligne dans le lecteur si la ligne]


De quoi avez-vous besoin de récursions?


3 Réponses :


0
votes

Peut-être que vous pouvez simplement modifier votre colonne [ligne [0] pour la ligne dans le lecteur] ligne à l'une d'entre elles:

  • colonne = [ligne [0] Si la ligne d'autre d'autre pour la ligne in lecteur] - cela préservera les index si c'est important
  • colonne = [ligne [0] pour la ligne dans le lecteur si ligne] - cela saute les lignes vides

    Si l'en-tête est vide, il soulève une indexerError lorsque vous essayez d'accéder à tous les éléments.


0 commentaires

0
votes
for row in reader:
    if len(row[0]) > 0:
        column = row[0]
    else:
        pass
You can add this line before author_list and after reader lines. So that if checks if something is on there, it takes it. Otherwise it passes to other rows.

0 commentaires

0
votes

Je pense que le moyen le plus rapide de le faire est d'utiliser des readlines telles que ceci: xxx

maintenant lignes est une liste de toutes les lignes du fichier Si une ligne est vide, vous aurez une chaîne vide ('') dans la liste et vous pouvez facilement vérifier cela. Vous pouvez également supprimer les caractères '\ r' et '\ n'.

Si vous souhaitez compter le nombre de mots différents, vous pouvez simplement utiliser len (set (lignes)) . Si vous souhaitez que le nombre de chacun de chacun, vous pouvez utiliser une fonction numpy.unique qui vous donnera la gamme de valeurs uniques et du nombre de ceux-ci.


0 commentaires