在python中调用函数时的列表理解
考虑rhino python中的以下文本,其中arrPts是一个点列表在python中调用函数时的列表理解,python,list-comprehension,Python,List Comprehension,考虑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,该函数将“angle”替换为实际的角度字符串(例如“>4
start_point = rs.GetPoint()
arrPts0 = []
arrPts0 = rs.GetPoints()
arrPts=[]
for ind, pt in enumerate(arrPts0):
arrPts.append( [pt,ind, 'angle','vector',0] )
然后我通过一个函数(def)运行arrPts,该函数将“angle”替换为实际的角度字符串(例如“>45”),然后我想运行以下代码,最后调用另一个单独的函数(def),称为“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))
谢谢
帕夫
1小时后。。。。。。尝试过这个,但似乎不起作用:
newPts = []
Vectors = add_Vectors([newPts for pt in arrPts if '<45' in pt[2]], start_point)
newPts=[]
Vectors=add_Vectors([newPts for pt in arrPts if'),我想我只找到了一行的正确语法
Vectors = add_Vectors([pt for pt in arrPts if '<45' in pt[2]], start_point)
Vectors=add_Vectors([pt for pt in arrPts if')如果您从[]
切换到()
您将拥有一个生成器表达式,在调用add_Vectors
之前,它不必生成整个列表。
Vectors = add_Vectors([pt for pt in arrPts if '<45' in pt[2]], start_point)