Python中的语句细节

时间:2012-12-19 21:40:24

标签: python if-statement padding

简而言之,我有一个项目清单。让我们说他们的名字是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?

1 个答案:

答案 0 :(得分:3)

看起来hiddenLists是用户输入的字符串(str)。对该字符串使用split方法首先使其成为列表。然后“in”子句将做你想要的。

例如,如果用户输入以逗号分隔的列表:

hiddenLists = [x.strip() for x in hiddenLists.split(",")]
if i.name() in hiddenLists:
    ...