Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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_Logical Operators - Fatal编程技术网

我可以在python中循环使用逻辑运算符吗?

我可以在python中循环使用逻辑运算符吗?,python,python-3.x,logical-operators,Python,Python 3.x,Logical Operators,为了避免重复,我想这样做: a, b = True, False l = list() for op in [and, or, xor]: l.append(a op b) 我尝试了导入操作符和itertools,但它们不包含逻辑操作符,只包含数学和其他一些操作符 我以前找不到任何有用的答案 或和和不能被函数复制,因为它们短路;但是如果您不关心这个问题,您可以编写lambda函数,例如lambax,y:x和y。对于布尔型上的xor,您可以使用 Adrian W在评论中提出了列表理解 更

为了避免重复,我想这样做:

a, b = True, False
l = list()
for op in [and, or, xor]:
    l.append(a op b)
我尝试了
导入操作符
itertools
,但它们不包含逻辑操作符,只包含数学和其他一些操作符


我以前找不到任何有用的答案

不能被函数复制,因为它们短路;但是如果您不关心这个问题,您可以编写lambda函数,例如
lambax,y:x和y
。对于布尔型上的xor,您可以使用

Adrian W在评论中提出了列表理解


更新:使用。更好。

您的示例可以使用
操作符
模块实现

来自运算符导入和uxor或xor
ops=[和,或,或,异或]
l=[op中op的op(a,b)]

这些是按位运算符,但对于布尔运算符(仅用一位表示),它们同时作为逻辑运算符。

而不是
循环的
,只需说:
l=[op(a,b)for op in ops]
ops = [(lambda x,y: x and y), (lambda x,y: x or y), operator.ne]
l = [op(a,b) for op in ops]