问两个变量是否是一个值,有没有一个简短的方法?

2024-04-27 21:59:27 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3中有没有一种更简短的方法来编写:

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

我一直在寻找,但没有找到一条较短的路。 我想把这行字打短一点:

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

Tags: or方法inifblueredpython3print
2条回答

您可以使用set,特别是^{}

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

如果两个集合不是“不相交”,那么它们有一个公共元素。只有当color1color2中至少有一个属于{'blue', 'red'}时,才会出现这种情况


如果要检查它们属于{'blue', 'red'},请使用^{}或其语法糖<=

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

你可以写

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

如果你有3个或更多的变量,你会受益。如果只有两个,你的变种看起来不错

相关问题 更多 >