我在python ["john","doe","1","90"]
和["prince","2","95"]
中有以下列表。第一个数字列是字段:id和第二个数字字段是分数。我想在python中使用re
来解析字段并打印。到目前为止,我只知道如何分割字段逗号。任何人都可以帮忙吗?
答案 0 :(得分:0)
你最好使用字典而不是正则表达式(我在这里看不到你如何使用):
{'name': 'John Doe', 'id': '1', 'score': '90'}
或者更好的是,使用数字:
{'name': 'John Doe', 'id': 1, 'score': 90}
答案 1 :(得分:0)
你真的不需要在这里表达正则。你可以使用isinstance()和切片。
这应该做你想要的:
a_list = ['john','doe','1','90']
for i, elem in enumerate(a_list):
try:
elem = int(elem)
except ValueError, e:
pass
if isinstance(elem, int):
names_part = a_list[:i-1]
id_and_score = a_list[i-1:]
print 'name(s): {0}, '.format(' '.join(names_part)), 'id: {id}, score: {score}'.format(id=id_and_score[0], score=id_and_score[1])
但是,如果我们知道您的数据来源或者是否有办法确定字段位置,那么这个解决方案可以改进,您只需按照建议将列表转换为字典即可。如果您提取数据,您可以考虑建立一个字典,而不是列表,以防止您必须执行上述操作。