我必须解析一个数据源:
my_string = "Alex - 30% / Bob - 23.33%"
这里 my_string 包含两个名字,但也可以是一个人或三个人。
我想获得一个将名称映射到值的字典:
result = {'Alex': 30, 'Bob': 23.33}
我尝试了多种方法,例如正则表达式和拆分字符串,但我似乎无法破解这个。
请您参考如下方法:
使用re.findall():
>>> import re
>>> my_string = "Alex - 30% / Bob - 23.33%"
>>> r = re.findall(r'([a-zA-Z]*) - (\S+)%', my_string)
>>> r
[('Alex', '30'), ('Bob', '23.33')]
然后你可以创建一个字典:
>>> result = {name:float(val) for name,val in r}
>>> result
{'Alex': 30.0, 'Bob': 23.33}
