question a propos de split , "noob inside"

question a propos de split , "noob inside" - Python - Programmation

Marsh Posté le 27-03-2004 à 08:08:59    

:hello: ,
 
jai un fichier txt que j ai copie dans un string  
ensuite je split cette string .

Code :
  1. list = txt.split()


qui me renvoie une list avec tout les "mots" separe par un espace.
j aimerai qu il me separe bein les mots , enlevant les . " } { / * - # $ ect ...
 
comment faire ?
 

Code :
  1. #get the current path
  2. import os
  3. rep_cour = os.getcwd()
  4. file = open('input.txt', 'r')
  5. #variables
  6. linecount = 0
  7. #creation of the dictionary
  8. words = { }
  9. #count lines
  10. for line in file.readlines():
  11.     linecount +=1
  12. print linecount
  13. file.seek(0)
  14. txt = file.read()
  15. list = txt.split(" " )
  16. for word in list :
  17.     if words.has_key( word ) :
  18.         words[ word ] += 1
  19.     else :
  20.         words[ word ] = 1
  21. for key in words:
  22.     count = words[key] 
  23.     print "%s : %s ." % (key, count)


 :)

Reply

Marsh Posté le 27-03-2004 à 08:08:59   

Reply

Marsh Posté le 27-03-2004 à 10:07:47    

for line in file.readlines():
   linecount +=1
print linecount  
 
=>
 
count =  len(fd.readlines()) # file est un mot-clef réservé
 
 
for word in list :
   if words.has_key( word ) :
       words[ word ] += 1
   else :
       words[ word ] = 1  
 
=>
 
for word in l: # list est un mot clef réservé
   words.setdefault(words, 0) += 1
 
 
 
 
sinon pour ton split -> ben tu fais autant de split que de caractères, sinon tu utilises une expression régulière


Message édité par Taz le 27-03-2004 à 10:08:30
Reply

Marsh Posté le 27-03-2004 à 11:16:48    

for word in l: # list est un mot clef réservé
   words.setdefault(words, 0) += 1
 
 
***cant assigne to function call (...,lign 24)

Reply

Marsh Posté le 27-03-2004 à 11:19:00    

ah oui, oups
 
 
words[word] = words.get(word, 0) + 1

Reply

Marsh Posté le 27-03-2004 à 11:56:11    

ca marche mais je comprend pas la syntaxe.
words[word] = words.get(word, 0) + 1
tu peus detaile un peu stp ?

Reply

Marsh Posté le 27-03-2004 à 12:00:31    

ben help(dict)

Reply

Marsh Posté le 27-03-2004 à 12:02:37    

....

Reply

Marsh Posté le 27-03-2004 à 13:17:29    

c est bon j ai trouve dans aprendre a programmer avec python.
 
j essaye d utiliser les expresions reguliere pour selectione les mots a la place de ca ;)
 

Code :
  1. alpha = "abcdefghijklmnopqrstuvwxyzéèàùçâêîôûäëïöü"
  2. lettres = ''         
  3. for c in txt:
  4.     c = c.lower()     
  5.     if c in alpha:
  6.         lettres = lettres + c
  7.     else:
  8.         lettres = lettres + ' '
  9. list = lettres.split()


 
j ai commence :

Code :
  1. import re
  2. p = re.compile('\w')
  3. p.findall(txt)


ca me renvoie une list avec tous les char corespondant.
mais comment ecrire un er qui me renvoie les mots ?
donc des lettres entre 2 espaces ou autre caracter non alphanum.

Reply

Marsh Posté le 27-03-2004 à 13:19:08    

\w+
 
sinon tes constantes, elle sont déjà dans le module string

Reply

Marsh Posté le 27-03-2004 à 13:21:43    

J'ai trouvé ça pas mal pour apprendre les regexp.  
http://www.p3b.org/tutor/oli/pytho [...] exp/a02exo
 
Utilise kodos pour vérifier tes regex

Reply

Marsh Posté le 27-03-2004 à 13:21:43   

Reply

Marsh Posté le 27-03-2004 à 13:43:58    

super sa marche :), je trouve python un peu ... special, surement par ce que c est mon premier language script.

Reply

Marsh Posté le 27-03-2004 à 14:05:35    

putain mais arrêter avec le script
 
y a pas de script ou autre ... y a des interpréteurs C boirdel :o:o::o:o:o:o:o:o:o:o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed