我有一个这样的变量:ignore = val1,val2
但我不清楚如何将这些值用作单独的值。
目前(据我所知)我需要像下面的代码一样对它们进行硬编码:
if (not Path.find("val1") > -1 ) and (not Path.find("val2") > -1 ):
etc
现在我想要添加测试,并且我需要像这样硬编码:
if (not Path.find("val1") > -1 ) and (not Path.find("val2") > -1 ) and (not Path.find("test") > -1 ):
有没有更好的方法呢?
答案 0 :(得分:4)
如果ignore
是值名称的元组:
if all(Path.find(v) <= -1 for v in ignore):
这有利于在第一个条件为假时立即停止。就像您的硬编码示例一样。
答案 1 :(得分:3)
这是tuple
,是Python中的基本数据类型之一。
您可以使用索引表示法访问不同的值,例如ignore[0]
,ignore[1]
等。
但是,如果您正在努力学习这样的基础语言功能,我强烈建议您在继续之前阅读Python教程。
答案 2 :(得分:0)
ignore = var1, var2
基本上会将ignore
分配给元组,其值为var1
和var2
。要访问它们,请分别对第一个和第二个元素使用ignore[0]
或ignore[1]
(在Python列表/元组索引中从0开始,而不是1)。
除此之外,您还可以使用collections.namedtuple
。这允许您将元组视为具有属性的类:
import collections
sometuple = collections.namedtuple('sometuple', 'var1 var2')
然后,您可以按名称访问该元素:
ignore = sometuple(var1, var2)
ignore.var1 # first element
ignore.var2 # second element
请参阅namedtuples
here的文档。
有关tuples
的一般信息,请参阅the documentation。