Re: (質問) 選択物の リストを取る方法

投稿ツリー


このトピックの投稿一覧へ

通常 Re: (質問) 選択物の リストを取る方法

msg# 1.1.1.1
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2015/1/10 11:57
完全無欠猫  長老 居住地: 兵庫  投稿数: 750
引用:
えっと・・・ こうかな。
v.index
for v in bpy.data.meshes[bpy.context.edit_object.name].vertices
  if v.select and not v.hide

ん〜? 最初の v.index って何してるんだろ。
[v.index for v in D.meshes[C.edit_object.name].vertices if v.select and not v.hide]
これはリストの定義書式のひとつで分解するものではありません。

リストの定義書式は以下の通りです。
(Python公式サイトのドキュメント The Python Language Reference 6.2.4 6.2.5 辺りを参考にすればいいと思います)
list_display ::= "[" [expression_list | list_comprehension] "]"
list_comprehension ::= expression list_for
list_for ::= "for" target_list "in" old_expression_list _iter]
old_expression_list ::= old_expression [("," old_expression)+ [","]]
old_expression ::= or_test | old_lambda_form
list_iter ::= list_for | list_if
list_if ::= "if" old_expression _iter]

例えば
[ x for x in range(3)] のように書けば
[0, 1, 2]というリストが生成されます。
また [[x, y] for x in range(2) for y in range(2)]のように書けば
[[0, 0], [0, 1], [1, 0], [1, 1]] というリストが生成されます。

list_if節はマッチ条件です。

ですので、[v.index for v in D.meshes[C.edit_object.name].vertices if v.select and not v.hide]は
Edit中のmeshのVertexの中から条件に一致するVertexのindex番号でリストを生成するという式です。

投票数:7 平均点:4.29

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki