如何在Python中从字符串提取不同字段的值

0 投票
1 回答
965 浏览
提问于 2025-04-16 06:32

我刚开始学习Python,想从一个字符串中提取值:

字符串是这样的:str='x:10 y:12 time : 01/01/2010 11:55:55'

现在我想创建一个字典,把值存储成这样:

x=10

y=12

time=01/01/2010 11:55:55

请告诉我该怎么做?

1 个回答

1

你尝试过什么了吗?
如果还没有,这里有一些想法……

使用内置的字符串处理工具
对于 xy

>>> 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']]

假设你把它赋值给一个变量:

>>> 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}

对于 time,你可以这样开始:

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

正则表达式

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

然后我可能会用 strptime() 来处理最后的日期时间部分:

>>> 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)

撰写回答