2010-11-04 5 views
0

Je suis débutant en python, je dois extraire les valeurs d'une chaîne: str = 'x: 10 y: 12 fois: 01/01/2010 11:55 : 55'comment extraire des valeurs de champ différent de la chaîne en python

maintenant je dois créer un dictionnaire dans lequel la valeur est stockée de telle sorte que: x = 10

y = 12

time = 01/01/2010 11h55 : 55

S'il vous plaît laissez-moi savoir comment faire ceci?

Répondre

1

Avez-vous déjà essayé quelque chose?
Sinon, voici quelques idées ...

Utilisation des outils de manipulation de chaînes intégrées
Pour x et y:

>>> s = 'x:10 y:12 time : 01/01/2010 11:55:55' 
>>> [pair.split(':') for pair in s.split(' ',2)[0:2]] 
[['x', '10'], ['y', '12']] 

et disons que vous avez ensuite attribué cela à un variable:

>>> lol = [x.split(':') for x in s.split(' ',2)[0:2]] 
>>> d = {} 
>>> for i,j in lol: 
... d[i] = int(j) 
... 
>>> d 
{'y': 12, 'x': 10} 

Pour time vous pouvez peut-être commencer comme ceci:

>>> [term.strip() for term in s.split(' ',2)[-1].split(':',1)] 
['time', '01/01/2010 11:55:55'] 

expressions régulières

>>> import re 
>>> re.findall('(\w+):(\d+)',s)[0:2] 
[('x', '10'), ('y', '12')] 

et je serais probablement il suffit d'utiliser strptime() pour la partie datetime finale:

>>> from datetime import datetime 
>>> datetime.strptime([term.strip() 
         for term in 
         s.split(' ',2)[-1].split(':',1)][1], '%m/%d/%Y %H:%M:%S') 
datetime.datetime(2010, 1, 1, 11, 55, 55) 
Questions connexes