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 开头,20s 以 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 回答