在python中调用函数时的列表理解

2024-10-01 09:36:28 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑一下rhinopython中的以下文本,其中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,该函数用实际的角度字符串(例如,'gt;45')替换'angle',然后我想运行下面的代码,该代码最后调用另一个名为'add_Vectors'的单独函数(def):

^{pr2}$

我如何用list comprehension重写上面的部分,使它只在满足条件时运行,而不是创建一个新列表(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)

Tags: 函数inaddpt列表fordefstart