考虑下面 Rhino v.5 中的这个 python 列表理解代码:
for j in range(1,3):
globals()["objlist" + str(j)] = [rs.OrientObject(obj, [rs.PointCoordinates(x) for x in objlist[1:4]], [rs.PointCoordinates(x) for x in objlist[1+ j*3:4+ j*3]], 1) for obj in objlist]
因为你们中的很多人都不知道我在这里调用的 rhinoscriptsyntax 命令:
rs.OrientObject and rs.PointCoordinates
我希望你能阅读其余的语法,因为问题在于列表理解而不是 rhinoscriptsyntax。
我没有开始工作的是列表切片代码中的第二个“j”:
objlist[1+ j*3:4+ j*3]
我只得到 j=1 的结果,而不是 j=2 的结果,尽管我在 range(1,3) 的循环中使用 aj
在这种情况下,'for j in range(1,3)' 是否根本不起作用,它是否仅适用于 '=' 的左侧,我将它用于 'objlist + str(j)'或者它根本不应该与列表理解一起使用,我应该找到一种方法来用列表理解重写所有内容?
ps 即使我用字典解决了 globals() 问题,我仍然需要 j 以便在每次迭代时对不同范围的列表进行切片。