简而言之,我有一个项目清单。让我们说他们的名字是Object1,Object2,.... Object10,...... Object20等等。
此列表取决于使用输入更改的起点,例如,可以说列表包中包含从Object18到Object28的所有对象的名称
我使用语句从存储的列表中选择这些项目:
for i in nuke.allNodes():
if i.name() in hiddenLists:
i.setSelected(True)
else:
i.setSelected(False)
一般有效...麻烦是因为“in”(对于列表内部)没有指定我希望它必须匹配列表的整个条目,而不是JUST选择对象18-28它选择Object1 Object2 And对象18-28(原因当然是Object18等等以Object1开头,20s带有2)
我无法填充字符串,因为这些是程序创建的设置名称并且必须保持不变。我唯一的问题是,是否有一个更好的运算符,因为它必须完全匹配而不是在'Object18'中看到Object1?
答案 0 :(得分:3)
看起来hiddenLists是用户输入的字符串(str)。对该字符串使用split
方法首先使其成为列表。然后“in”子句将做你想要的。
例如,如果用户输入以逗号分隔的列表:
hiddenLists = [x.strip() for x in hiddenLists.split(",")]
if i.name() in hiddenLists:
...