You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将布尔比较运算符赋值给变量?

问题解答

你想要的那种直接将运算符符号存为字符串,然后像代码一样拼接使用的写法不可行,Python无法识别这种语法,会直接抛出语法错误。

要实现不重复代码的需求,你可以用以下两种方法:

方法1:使用operator模块的内置函数

Python的operator模块提供了对应各种比较运算符的函数,直接赋值给变量即可调用:

import operator

up_down: bool = True

# 根据up_down选择对应的比较函数
if up_down:
    comp1 = operator.gt  # 对应 >
    comp2 = operator.ge  # 对应 >=
else:
    comp1 = operator.lt  # 对应 <
    comp2 = operator.le  # 对应 <=

# 调用函数完成比较
flag1 = comp1(data['foo'], data['foo'].shift(x))
flag2 = comp2(data['foo'], data['foo2'])

方法2:自定义lambda函数

如果不想导入模块,也可以用lambda函数直接定义比较逻辑:

up_down: bool = True

if up_down:
    comp1 = lambda a, b: a > b
    comp2 = lambda a, b: a >= b
else:
    comp1 = lambda a, b: a < b
    comp2 = lambda a, b: a <= b

# 调用lambda函数完成比较
flag1 = comp1(data['foo'], data['foo'].shift(x))
flag2 = comp2(data['foo'], data['foo2'])

这两种写法都能避免重复代码,逻辑和你最初的需求完全一致,且符合Python语法规范。

内容的提问来源于stack exchange,提问作者Jakub Szurlej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:05:55