我有一个变量列表。有些等于True,有些则不是。我想知道最简单的方法是打印只有'真'的方法。它们打印的顺序无关紧要,但它们需要在输出中用空行分隔。
例如:
Var1 = "Cat"
Var2 = "Dog"
Var3 = "Sheep"
Var4 = ""
Var5 = ""
Var6 = "Horse"
我需要以某种方式让系统打印出来:
Cat
Dog
Sheep
Horse
我在想这样的事情:
print True in [Var1, Var2, Var3, Var4, Var5, Var6]
但显然这不起作用,因为它似乎没有正确使用(我只是在猜测)。任何想法都将非常感谢!
答案 0 :(得分:5)
尽管如您对问题的评论所述,VarX, VarY, ...
是一种常见的反模式,您应该使用列表,您可以使用:
print('\n'.join(filter(bool, [Var1, Var2, Var3, Var4, Var5, Var6])))
答案 1 :(得分:4)
要在内存中保存字符串,请使用filter
和sep=
的{{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]))