Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python if in语句细节_Python_If Statement_Padding - Fatal编程技术网

Python if in语句细节

Python if in语句细节,python,if-statement,padding,Python,If Statement,Padding,简言之,我有一个项目清单。假设它们的名称为Object1、Object2、.Object10、.Object20等等 此列表根据使用输入更改起始点,例如,该列表包含从Object18到Object28的所有对象的名称 Im使用语句从存储列表中选择以下项目: for i in nuke.allNodes(): if i.name() in hiddenLists: i.setSelected(True) else: i.setSelected(False) 这通常是有效的。。。问

简言之,我有一个项目清单。假设它们的名称为Object1、Object2、.Object10、.Object20等等

此列表根据使用输入更改起始点,例如,该列表包含从Object18到Object28的所有对象的名称

Im使用语句从存储列表中选择以下项目:

for i in nuke.allNodes():
if i.name() in hiddenLists:
    i.setSelected(True)
else:
    i.setSelected(False)
这通常是有效的。。。问题在于“in”(用于列表内部)没有指定我希望它必须匹配列表的整个条目,而不仅仅是选择对象18-28,它选择了Object1 Object2和对象18-28(当然,原因是Object18等都以Object1开头,20以2开头)


我不能填充字符串,因为这些是程序创建的集合名称,必须保持不变。我唯一的问题是,是否有比中更好的运算符使其必须精确匹配,而不是在“Object18”中查看Object1?

看起来HiddenList是用户输入的字符串(str)。对该字符串使用
split
方法首先将其列为列表。然后“in”子句将执行您想要的操作

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

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

HiddenList是列表还是字符串对象?如果它是一个列表,是字符串列表还是其他对象?我不确定我是否遵循:
中的this将返回
False
。隐藏列表的数据类型是什么?这也是我的困惑。。。除非HiddenList是一个字符串,在这种情况下,“this_that”中的“this”返回true。请注意,可以完全删除代码中的if语句,并替换为
i.setSelected(hiddenList中的i.name())
(假设if语句按预期工作。你的问题很难理解。@user1917081,我的答案有帮助吗?Tommy赢了。如果这是一篇令人困惑的帖子,我很抱歉——我原以为它是一个列表,但在某一点上,由于程序的原因,从一个地方到另一个地方获取数据时,它变成了一个字符串,我没有意识到。不确定是什么虽然tommy使用了yp代码,但是jsut单独使用hiddenLists.split(“,”)是完美的。