Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-将正则表达式结果传递给列表_Python_Regex_For Loop_Cad - Fatal编程技术网

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

Python-将正则表达式结果传递给列表,python,regex,for-loop,cad,Python,Regex,For Loop,Cad,我试图将regex findall()函数的结果传递给列表。我使用的代码如下所示: #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 = [in

我试图将regex findall()函数的结果传递给列表。我使用的代码如下所示:

#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)
for循环在字典中迭代,每次都更改
fobId
,每次都生成不同的匹配。当前的输出如下所示:

[159]
[328]
[37]
[18]
...
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)
但是,我希望它看起来像这样:

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

我猜这与for循环有关,每次都更改变量
edgeloop_txt
,但我不确定如何避免这种情况。

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

[159]
[328]
[37]
[18]
...
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\u array
,并在循环完成时打印整个数组。

Awesome!谢谢