KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Samedi 17 mai 2008 - 08:50:57

[Python]Convertir chaine de caractere

Rechercher : dans
[Python]Convertir chaine de caractere
par oreilledelest
 Fil de Discussions
Statut : Résolu
mercredi 29 mars 2006 à 17:06:26
Bonjour à tous
J'ai créé une liste qui récupère des données provenant d'un fichier texte. Les données sont des nombres mais lorsque je les copie dans ma liste, Python les prend pour des chaînes de caractères. Donc je ne peux pas les afficher en faisant un "plot".
Quelqu'un saurait comment faire pour corriger ce problème?
Merci
Répondre à oreilledelest  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par sebsauvage, le mercredi 29 mars 2006 à 17:09:44 Fil de Discussions
maliste = ['12','47','22','74']
print [int(i) for i in maliste]

ou bien:
print map(int,maliste)

Répondre à sebsauvage

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par oreilledelest, le mercredi 29 mars 2006 à 17:12:31 Fil de Discussions
Merci mais j'avais déjà essayé et le résultat est :
"ValueError: invalid literal for int(): 0.4"
(0.4 est la première valeur de ma liste)
Je ne comprends pas l'erreur.....
Répondre à oreilledelest

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par sebsauvage, le mercredi 29 mars 2006 à 17:15:57 Fil de Discussions
0.4 n'est pas un entier !

Donc il refuse de le convertir en entier, et lève une exception ValueError, ce qui est normal.
Répondre à sebsauvage

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par oreilledelest, le mercredi 29 mars 2006 à 17:21:55 Fil de Discussions
Oui pardon, mais j avais aussi essayé avec float()...
Mais j ai trouvé mon erreur.
Merci quand même
Répondre à oreilledelest

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par oreilledelest, le mercredi 29 mars 2006 à 17:25:57 Fil de Discussions
Ah ben en fait, non....
Voila la partie du code qui plante:
"def Plot(matrice_val_param) :
for t in matrice_val_param[0:] :
l = plot(float(t))
show()"

et la matrice en question :
['0.4', '0.41', '0.42', '0.43', '0.44', '0.45', '0.46', '0.47', '0.48', '0.49', '0.5', '0.51', '0.52', '0.53', '0.54', '0.55', '0.56', '0.57', '0.58', '0.59', '0.6', '0.61', '0.62', '0.63', '0.64', '0.65', '0.66', '0.67', '0.68', '0.69', '0.7', '0.71', '0.72', '0.73', '0.74', '0.75', '0.76', '0.77', '0.78', '0.79', '0.8', '0.81', '0.82', '0.83', '0.84', '0.85', '0.86', '0.87', '0.88', '0.89', '0.9', '0.91', '0.92', '0.93', '0.94', '0.95', '0.96', '0.97', '0.98', '0.99', '1', '1.01', '1.02', '1.03', '1.04', '1.05', '1.06', '1.07', '1.08', '1.09', '1.1', '1.11', '1.12', '1.13', '1.14', '1.15', '1.16', '1.17', '1.18', '1.19', '1.2']

Et enfin l'erreur : "AssertionError"
Une idée du problème?
Répondre à oreilledelest

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par sebsauvage, le mercredi 29 mars 2006 à 17:40:41 Fil de Discussions
Tout dépend d'où se déclenche l'AssertionError.

Tu as la stacktrace complète ?
(avec le message d'erreur complet ?)


C'est probablement ta librairie de graphe qui n'aime pas les donnée que tu lui donne.
Si elle veut une matrice, elle exige peut-être qu'elle soit découpée en lignes.
Répondre à sebsauvage

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par oreilledelest, le mercredi 29 mars 2006 à 17:44:32 Fil de Discussions
Voila le message entier :
"Traceback (most recent call last):
File "Search_char_1_3.py", line 133, in ?
Data = Read_File('test.mdm')
File "Search_char_1_3.py", line 75, in Read_File
Recover_Param(file_to_read, num_line_end_db, num_line_sharp, nb_param, param)
File "Search_char_1_3.py", line 119, in Recover_Param
Plot(matrice_val_param)
File "Search_char_1_3.py", line 127, in Plot
l = plot(tmp,'go-')
File "/opt/ActivePython-2.4/lib/python2.4/site-packages/matplotlib/pylab.py", line 2018, in plot
ret = gca().plot(*args, **kwargs)
File "/opt/ActivePython-2.4/lib/python2.4/site-packages/matplotlib/axes.py", line 2786, in plot
for line in self._get_lines(*args, **kwargs):
File "/opt/ActivePython-2.4/lib/python2.4/site-packages/matplotlib/axes.py", line 300, in _grab_next_args
yield self._plot_2_args(remaining, **kwargs)
File "/opt/ActivePython-2.4/lib/python2.4/site-packages/matplotlib/axes.py", line 229, in _plot_2_args
assert(iterable(y))
AssertionError"
Si tu y comprends quelque chose....
Répondre à oreilledelest

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par sebsauvage, le mercredi 29 mars 2006 à 17:52:23 Fil de Discussions
ah... matplotlib, bonne petite librairie.


A vue de nez, tu fais un plot() par valeur.
Ce n'est pas ce qu'il faut faire.

Il faut faire un seul plot, et lui passer toutes les valeurs d'un coup.

Exemple:
from pylab import *
m = ['0.4', '0.41', '0.42', '0.43', '0.44', '0.45', '0.46', '0.47', '0.48', '0.49', '0.5', '0.51', '0.52', '0.53', '0.54', '0.55', '0.56', '0.57', '0.58', '0.59', '0.6', '0.61', '0.62', '0.63', '0.64', '0.65', '0.66', '0.67', '0.68', '0.69', '0.7', '0.71', '0.72', '0.73', '0.74', '0.75', '0.76', '0.77', '0.78', '0.79', '0.8', '0.81', '0.82', '0.83', '0.84', '0.85', '0.86', '0.87', '0.88', '0.89', '0.9', '0.91', '0.92', '0.93', '0.94', '0.95', '0.96', '0.97', '0.98', '0.99', '1', '1.01', '1.02', '1.03', '1.04', '1.05', '1.06', '1.07', '1.08', '1.09', '1.1', '1.11', '1.12', '1.13', '1.14', '1.15', '1.16', '1.17', '1.18', '1.19', '1.2'] 
matrice = map(float,m)
plot(matrice)
show()
Répondre à sebsauvage

9


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Par oreilledelest, le mercredi 29 mars 2006 à 17:56:05 Fil de Discussions 
Yes merci !!!
C'était ça.
Un grand merci
Bonne soirée (et peut-être à demain :) )
Répondre à oreilledelest
Discussions pertinentes trouvées dans le forum
28/11 04h52[C] Convertir chaîne de caractères en floatProgrammation28/11 22h264
06/06 18h22[langage c] : conversion chaine de caractereProgrammation07/06 16h227
02/01 12h47convertir chaine de caractére en date en PHPWebmastering16/05 19h175
14/02 11h19Conversion chaine de caracteres en entierProgrammation14/02 11h521
Plus de discussions sur « [Python]Convertir chaine de caractere » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide