在python 3中是否有更短的编写方式:
if a in ('n', 'm') or b in ('n', 'm'):
print(a)
我一直在搜索,但没有找到更短的方法。 我尝试缩短此行:
if color1 in ('blue', 'red') or color2 in ('blue', 'red'):
答案 0 :(得分:1)
您可以使用set
,特别是set.isdisjoint
:
if not {color1, color2}.isdisjoint({'blue', 'red'}):
print(color1)
如果两个集合不是“不相交的”,则它们具有共同的元素。仅当color1
或color2
中的至少一个属于{'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个,则您的变体看起来不错。