Coversion string<-->list

cs_john491 Messages postés 4 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 mai 2006 - 4 mai 2006 à 13:27
cs_john491 Messages postés 4 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 mai 2006 - 5 mai 2006 à 16:06
Bonjour a tous.
Je dois creer une petite bibliotheque sur les polynomes ( donc j'ai pas le droit d'utiliser les fonctions predefinies sur les polynomes :( )
Et ce qui me bloque est d'ecrire une fonction qui transforme une chaine de caracteres en une liste par exemple : pour la chaine '2x^7-36x^2+6x+1' la fonction doit renvoyer la liste : [1,6,-36,0,0,0,0,2] ( ou [2,0,0,0,0,-36,6,1])
J'ai ecrit une fonction (mais qui ne marche pas malheureusement :( )


from string import *
>>> l='2x^7-36x^2+6x+1'
>>> y=split(l,'+')
>>> y
['2x^7-36x^2', '6x', '1']
>>> x=[split(y[i],'-') for i in range(len(y))]
>>> x
[['2x^7', '36x^2'], ['6x'], ['1']]
>>> t=[x[i][j] for i in range(len(x)) for j in range(len(x[i]))]
>>> t
['2x^7', '36x^2', '6x', '1']
>>> z=[split(t[i],'x') for i in range(len(t)) ]
>>> z
[['2', '^7'], ['36', '^2'], ['6', ''], ['1']]
>>> s=[z[i][j] for i in range(len(z)) for j in range(len(z[i]))]
>>> s
['2', '^7', '36', '^2', '6', '', '1']
>>> f=[split(s[i],'^') for i in range(len(s)) ]
>>> f
[['2'], ['', '7'], ['36'], ['', '2'], ['6'], [''], ['1']]
>>> for i in range(len(h)-1,-1,-1):
if h[i]=='':
del(h[i])
#ou encore (equivalent)
>>> b=[]
>>> for i in range(len(h)):
if h[i]!='':
b=b+[h[i]]
>>> b
['2', '7', '36', '2', '6', '1']

Ca me permet de recuperer les coefficients et les puissances mais je perds le signe des coefficients a la fin (le signe ' - ' )
Toutes les indications sont les bienvenues.
Merci d'avance.
PS1:Je dois rendre mon projet dans peux de jours.
PS2:Je ne suis que debutant en Python.

2 réponses

taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
4 mai 2006 à 17:04
Utilise les expressions régulière.
par exemple

en faisant des groupes dans ton expression régulière tu pourras facilement récupérer les informations qui te sont nécéssaires.
0
cs_john491 Messages postés 4 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 mai 2006
5 mai 2006 à 16:06
Salut taz_iup.
c'est quoi une expression reguliere en python?
merci
0
Rejoignez-nous