2024-04-28 15:58:39 发布
网友
我在python ["john","doe","1","90"]和["prince","2","95"]中有以下列表。第一个数字列是field:id,第二个数字字段是score。我想用python中的re来解析字段并打印。到目前为止,我只知道如何分割逗号字段。有人能帮忙吗
["john","doe","1","90"]
["prince","2","95"]
re
这里不需要正则表达式。只需使用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])
不过,如果我们知道您的数据来源,或者如果有一种方法来预测字段位置,那么这个解决方案可能会有所改进—您可以按照建议将列表转换为dict。如果你提取了你的数据,你可以考虑建立一个dict而不是一个列表,这样你就不用做上面的事情了
你最好用字典而不是正则表达式(我不知道你在这里怎么用):
{'name': 'John Doe', 'id': '1', 'score': '90'}
或者最好使用数字:
{'name': 'John Doe', 'id': 1, 'score': 90}
这里不需要正则表达式。只需使用isinstance()和切片即可
这应该是你想要的:
不过,如果我们知道您的数据来源,或者如果有一种方法来预测字段位置,那么这个解决方案可能会有所改进—您可以按照建议将列表转换为dict。如果你提取了你的数据,你可以考虑建立一个dict而不是一个列表,这样你就不用做上面的事情了
你最好用字典而不是正则表达式(我不知道你在这里怎么用):
或者最好使用数字:
相关问题 更多 >
编程相关推荐