Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一种更简短的方式询问两个变量是否为一个值?_Python_Python 3.x - Fatal编程技术网

Python 是否有一种更简短的方式询问两个变量是否为一个值?

Python 是否有一种更简短的方式询问两个变量是否为一个值?,python,python-3.x,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'): 你可以写 if any(color in ('blue', 'red') for color in (color1, color2)): 如果您有3个或

在python 3中,有没有一种较短的编写方法:

if a in ('n', 'm') or b in ('n', 'm'):
    print(a)
我一直在寻找,但没有找到较短的路。 我正在尝试将此行键入较短的文字:

if color1 in ('blue', 'red') or color2 in ('blue', 'red'):
你可以写

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

如果您有3个或更多变量,If将受益。如果只有两个变量,则您的变量看起来很好。

您可以使用
set
,具体如下:

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



如果要检查它们是否都属于
{blue',red'}
,请使用或使用其语法糖
如果{a,b}:
中的'n',可能在字符方面较短,但实际上并不清晰。为什么您需要更短?我正在尝试这样做:如果color1在('blue'、'red')或color2在('blue'、'red'):您正在测试
color1
是否是
“blue”
“red”
两倍于此……为什么必须更短?如果希望color1和color2在('blue'、'red'),如果您希望它们都在列表中,您只需将
any
替换为
all
。如果{color1,color2}&{blue',red'}
@a_guest,您可以通过
快捷方式实现这一点,因为它们不一样
set.isdisjoint
短路,时间复杂度较低<代码>设置。交叉点
实际计算整个交叉点,而不仅仅是非空交叉点的存在。
if not {color1, color2}.isdisjoint({'blue', 'red'}):
    print(color1)
if {color1, color2} <= {'blue', 'red'}:
    print(color1)