ValueError: invalid littéral pour float() en Python

À tous:

Je curieux de savoir si quelqu'un peut m'aider à comprendre l'erreur: ValueError: invalid littéral pour float(). Je suis quand je suis de passage d'un fichier texte à une liste d'essayer ensuite de le convertir cette liste de valeurs flottantes.

a = open("input.txt","r")
lines = a.readlines()
b = map(float, lines)

Ce qui est bizarre, au moins pour moi, c'est que lorsque j'ai procédé:

print repr(lines[0])

J'obtiens:

'0.000\t0.000...\t0.000\t0.000\n'

et

print type(lines[0])

J'obtiens:

<type 'str'>

Je ne comprends pas pourquoi la carte(float, lignes) ne fonctionne pas correctement. Suis-je à l'aide de cette fonction de façon incorrecte? Regarder la documentation de la carte de fonction est donnée sous la forme: carte(fonction, itératif, ...). Une liste non itératif?

Aussi si quelqu'un pouvait expliquer cette erreur/me pointer dans la direction d'une explication de cette erreur, je vous en serais très reconnaissante.

Merci à l'avance pour aider avec cette question.

  • Dites-vous que 0.000\t0.000...\t0.000\n est sur une seule ligne? Si oui, alors je suppose que c'est ce qui est transmis dans float() et il ne peut pas convertir. Semble que vous auriez besoin de les diviser en différentes valeurs flottantes. Est-ce le cas?
  • Oui c'est sur une seule ligne, mais quand j'processus, il semble le faire à travers un certain nombre de valeurs, puis me donne l'erreur: b = map(float, lignes) ValueError: invalid littéral pour flotteur(): 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0. Est n'est pas réellement le faire à travers les valeurs?
  • Qui ressemble exactement à la chaîne que vous avez noté ci-dessus, mais avec le \t affiche sous la forme d'espaces (c'est à dire un réel caractère de tabulation). C'est tout un littéral de chaîne, n'est pas un tas de courts, je suppose.
  • Ce serait plus logique. Il est tout simplement en la regardant comme une seule chaîne. Merci pour l'aide.
InformationsquelleAutor geop | 2011-11-02