0

我有一个变量列表。有些等于 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

4 回答 4

5

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

print('\n'.join(filter(bool, [Var1, Var2, Var3, Var4, Var5, Var6])))
于 2013-04-29T12:34:37.707 回答
4

保存在内存使用中构建字符串filtersep=参数print

items = (var1, var2, var3) # etc...
print (*filter(None, items), sep='\n')
于 2013-04-29T12:52:19.723 回答
3
print([var for var in [Var1, Var2, Var3, Var4, Var5, Var6] if var])
于 2013-04-29T12:32:09.103 回答
2
print ('\n'.join([var for var in [Var1, Var2, Var3, Var4, Var5, Var6] if var]))
于 2013-04-29T12:31:13.537 回答