我有一个长字符串对象,其格式如下
myString = “[name = john, family = candy, age = 72],[ name = jeff, family = Thomson, age = 24]”
当然字符串比这个长。 我还有 3 个具有相关名称的列表:
Names = []
Families = []
Ages = []
我想逐个字符地读取该字符串并获取数据并将其附加到适当的列表中。谁能帮我解决如何将字符串分成变量的问题? 我需要的东西是这样的:
Names = [“john”, “jeff”, ...]
Families = [“candy”, “Thomson”, ...]
Ages = [72, 24, ...]
请您参考如下方法:
这可以使用正则表达式轻松完成。基本上,构造一个从字符串中提取姓名、家庭和年龄的正则表达式,并从返回的 tuple 中提取相关数据以构建您的 list。
import re
if __name__=='__main__':
myString = "[name = john adams, family = candy, age = 72],[ name = jeff, family = Thomson, age = 24]"
answers=re.findall("\\[\\s*name = ([^,]+), family = (\\w+), age = (\\d+)\\]",myString)
names=[x[0] for x in answers]
families=[x[1] for x in answers]
ages=map(int,(x[2] for x in answers))
print "names: ",names
print "families: ", families
print "ages: ", ages
