有没有一种较短的方法来询问2个变量是否为值?

时间:2018-10-03 20:12:04

标签: python python-3.x

在python 3中是否有更短的编写方式:

if a in ('n', 'm') or b in ('n', 'm'):
    print(a)

我一直在搜索,但没有找到更短的方法。 我尝试缩短此行:

if color1 in ('blue', 'red') or color2 in ('blue', 'red'):

2 个答案:

答案 0 :(得分:1)

您可以使用set,特别是set.isdisjoint

if not {color1, color2}.isdisjoint({'blue', 'red'}):
    print(color1)

如果两个集合不是“不相交的”,则它们具有共同的元素。仅当color1color2中的至少一个属于{'blue', 'red'}时,情况如此。


如果要检查它们两个都属于{'blue', 'red'},请使用set.issubset或其语法糖<=

if {color1, color2} <= {'blue', 'red'}:
    print(color1)

答案 1 :(得分:0)

你可以写

if any(color in ('blue', 'red') for color in (color1, color2)):

如果您拥有3个或更多变量,If将会受益。如果只有2个,则您的变体看起来不错。