我可以在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]