Python - 将正则表达式结果传递给列表

时间:2017-12-13 21:44:04

标签: python regex for-loop cad

我试图将regex findall()函数的结果传递给列表。我用来执行此操作的代码如下:

from haystack.query import SearchQuerySet
from django.http JsonResponse

def custom_query(request):
    sqs = SearchQuerySet().auto_query('fruit').load_all()
    # and do whatever you want with the sqs
    return JsonResponse({'result': sqs[0].object.pk})

for循环遍历字典并每次更改#iterate DoL, find fobIDs and use to find edgeloop IDs for key, val in DoL.items(): fobId = val["FaceOuterBound"] edgeloop_txt = re.findall(r'\n#'+str(fobId)+r'\D*#(\d+).*;', text) edgeloops = [int(edgeloop) for edgeloop in edgeloop_txt] print(edgeloops) ,每次都会产生不同的匹配。输出目前看起来像这样:

fobId

但是,我希望它看起来像这样:

[159]
[328]
[37]
[18]
...

我猜这与for循环每次更改变量[159, 328, 37, 18,....] 有关,但我不确定如何避免这种情况。

1 个答案:

答案 0 :(得分:1)

现在您正在创建一个新数组,并且每次都通过循环打印它。尝试这样的事情:

total_array = []

for key, val in DoL.items():
    fobId = val["FaceOuterBound"]
    edgeloop_txt = re.findall(r'\n#'+str(fobId)+r'\D*#(\d+).*;', text)
    total_array += [int(edgeloop) for edgeloop in edgeloop_txt]
print(total_array)

这将遍历您的项目,不断添加到total_array,并在循环完成时打印整个数组。