我有这份名单。我想做一个for循环,它将在列表中的这些文件的函数组合中使用。
我不知道如何使这些组合,对每一个“检查”,它将采取正确的组合。
如果不是用于循环的函数,则如下所示:
erase('check3_dwg_Polyline','check3_dwg_Polyline_feat_to_polyg_feat_to_line','output_name')我试过的是:
这是名单。
li=['check3_dwg_Polyline', 'check2_dwg_Polyline',
'check3_dwg_Polyline_feat_to_polyg',# this will not be needed to extracted
'check2_dwg_Polyline_feat_to_polyg',# >> >>
'check3_dwg_Polyline_feat_to_polyg_feat_to_line',
'check2_dwg_Polyline_feat_to_polyg_feat_to_line']从以下几点开始:
a=[li[i:i+3] for i in range(0, len(li), 3)]返回的地方:
[['check3_dwg_Polyline',
'check2_dwg_Polyline',
'check3_dwg_Polyline_feat_to_polyg'],
['check2_dwg_Polyline_feat_to_polyg',
'check3_dwg_Polyline_feat_to_polyg_feat_to_line',
'check2_dwg_Polyline_feat_to_polyg_feat_to_line']]最后:
for base, base_f, base_line in a:
print(base, base_line, base + "_output")给予:
check3_dwg_Polyline check3_dwg_Polyline_feat_to_polyg check3_dwg_Polyline_output
check2_dwg_Polyline_feat_to_polyg check2_dwg_Polyline_feat_to_polyg_feat_to_line check2_dwg_Polyline_feat_to_polyg_output其他方法:
base = [f for f in li if not f.endswith(("_polyg", "_to_line"))]
base_f = {f.strip("_feat_to_polyg"): f for f in li if f.endswith("_polyg")}
base_line = {f.strip("_feat_to_polyg_feat_to_line"): f for f in li if f.endswith("_to_line")}
[(b, base_f[b], base_line[b]) for b in base]给予:
KeyError: 'check3_dwg_Polyline'我尝试过对列表进行排序,但是当通过上面提到的过程时,它只是以一种不同的方式破坏了它。
理想的结果是
当尝试这样做时:
for base, base_f, base_line in a:
print(base, base_line, base + "_output")为了做到这一点:
check3_dwg_Polyline check3_dwg_Polyline_feat_to_polyg_feat_to_line check3_dwg_Polyline_output
check2_dwg_Polyline check2_dwg_Polyline_feat_to_polyg_feat_to_line check2_dwg_Polyline_output像这样放进去的地方:
erase('check3_dwg_Polyline','check3_dwg_Polyline_feat_to_polyg_feat_to_line','output_name')发布于 2018-07-26 09:24:05
将列表划分为zip 2…中的check3块然后您可以执行for循环。
n = len(li) // 3
a = zip(*[li[i:i+n] for i in range(0, len(li), n)])(pprint(list(a))将输出
[('check3_dwg_Polyline',
'check3_dwg_Polyline_feat_to_polyg',
'check3_dwg_Polyline_feat_to_polyg_feat_to_line'),
('check2_dwg_Polyline',
'check2_dwg_Polyline_feat_to_polyg',
'check2_dwg_Polyline_feat_to_polyg_feat_to_line')]https://stackoverflow.com/questions/51533163
复制相似问题