以下の 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 ではなくリスト内包表記にあるため、残りの構文を読んでいただければ幸いです。
私がうまくいかないのは、次のリストスライスコード内の2番目の「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 が必要です。