考虑 rhino python 中的以下文本,其中 arrPts 是点列表
start_point = rs.GetPoint()
arrPts0 = []
arrPts0 = rs.GetPoints()
arrPts=[]
for ind, pt in enumerate(arrPts0):
arrPts.append( [pt,ind, 'angle','vector',0] )
然后我通过一个函数 (def) 运行 arrPts,该函数将“角度”替换为实际的角度字符串(例如“>45”),然后我想运行以下代码,该代码最终调用另一个名为“ add_Vectors':
Vectors = []
newPts = []
for pt in arrPts:
if '>45' or '<45' in pt[2]:
newPts.append(pt)
Vectors.append(add_Vectors(newPts, start_point))
我如何用列表理解重写上述部分,以便它仅在满足条件时运行,而不是创建新列表(newPts)但始终在主列表(arrPts)上工作,如果有一个函数(def)在路上?
就像是:
Vectors.append(add_Vectors(newPts, start_point) ----> for '>45' in pt[2]
谢谢
帕夫
1小时后......尝试了这个但似乎不起作用:
newPts = []
Vectors = add_Vectors([newPts for pt in arrPts if '<45' in pt[2]], start_point)