2

要するに、私はアイテムのリストを持っています。Object1、Object2、.... Object10、....Object20などの名前があるとします。

このリストは、使用入力に応じて開始点を変更します。たとえば、リストがObject18からObject28までのすべてのオブジェクトの名前にパックされているとします。

ステートメントを使用して、保存されているリストからこれらのアイテムを選択します。

for i in nuke.allNodes():
if i.name() in hiddenLists:
    i.setSelected(True)
else:
    i.setSelected(False)

これは一般的に機能します...問題は、「in」(リスト内)がリストのエントリ全体と一致する必要があることを指定していないためです。オブジェクト18-28を選択するだけでなく、オブジェクト1オブジェクト2とオブジェクト18-を選択します。 28(もちろん、Object18などはObject1で始まり、20は2で始まります)

これらはプログラムが作成するセット名であり、同じままでなければならないため、文字列を埋めることができません。私の唯一の質問は、「Object18」内のObject1を表示するのではなく、完全に一致する必要があるという点よりも優れた演算子があるかどうかです。

4

1 に答える 1

3

hiddenLists は、ユーザーが入力した文字列 (str) のようです。その文字列に対してメソッドを使用しsplitて、最初にリストにします。次に、「in」句はあなたが望むことを行います。

たとえば、ユーザーがカンマ区切りのリストを入力した場合:

hiddenLists = [x.strip() for x in hiddenLists.split(",")]
if i.name() in hiddenLists:
    ...
于 2012-12-19T21:45:21.040 に答える