仅打印True Python 3.3的变量

时间:2013-04-29 12:30:11

标签: python python-3.3

我有一个变量列表。有些等于True,有些则不是。我想知道最简单的方法是打印只有'真'的方法。它们打印的顺序无关紧要,但它们需要在输出中用空行分隔。

例如:

Var1 = "Cat"
Var2 = "Dog"
Var3 = "Sheep"
Var4 = ""
Var5 = ""
Var6 = "Horse"

我需要以某种方式让系统打印出来:

Cat

Dog

Sheep

Horse

我在想这样的事情:

print True in [Var1, Var2, Var3, Var4, Var5, Var6]

但显然这不起作用,因为它似乎没有正确使用(我只是在猜测)。任何想法都将非常感谢!

4 个答案:

答案 0 :(得分:5)

尽管如您对问题的评论所述,VarX, VarY, ...是一种常见的反模式,您应该使用列表,您可以使用:

print('\n'.join(filter(bool, [Var1, Var2, Var3, Var4, Var5, Var6])))

答案 1 :(得分:4)

要在内存中保存字符串,请使用filtersep=的{​​{1}}参数:

print

答案 2 :(得分:3)

print([var for var in [Var1, Var2, Var3, Var4, Var5, Var6] if var])

答案 3 :(得分:2)

print ('\n'.join([var for var in [Var1, Var2, Var3, Var4, Var5, Var6] if var]))