如何使用逗号分隔变量?

时间:2013-01-17 12:07:24

标签: python

我有一个这样的变量: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 ):

有没有更好的方法呢?

3 个答案:

答案 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分配给元组,其值为var1var2。要访问它们,请分别对第一个和第二个元素使用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