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

如何定义可接收条件作为输入的Python函数?

实现可接收规则条件的筛选函数

你示例里的rule=(>2)是无效的Python语法,Python不支持直接传递这种比较表达式,必须把条件封装成可调用的函数(比如lambda表达式或自定义函数),下面是可行的实现方式:

核心实现代码

import numpy as np

def _select(x, rule):
    # rule是一个接收数组并返回布尔数组的函数,用布尔索引筛选符合条件的元素
    return x[rule(x)]

# 生成测试用的随机数组
L = np.round(np.random.normal(2, 4, 50), decimals=2)

# 使用lambda表达式作为规则参数,筛选大于2的元素
y = _select(x=L, rule=lambda arr: arr > 2)
# 筛选大于4的元素
y1 = _select(x=L, rule=lambda arr: arr > 4)

关键说明

  • 用lambda是因为它能简洁地把arr > 2这类条件封装成可传递的函数,lambda接收数组arr后,会返回每个元素是否满足条件的布尔数组。
  • 如果规则逻辑更复杂,也可以用普通自定义函数替代lambda,比如:
    def greater_than_four(arr):
        return arr > 4
    
    y1 = _select(x=L, rule=greater_than_four)
    
  • 要是你希望_select只返回布尔判断结果(而非筛选后的元素),直接返回rule(x)即可,但这样得到的是布尔数组,不是符合条件的数字。

内容的提问来源于stack exchange,提问作者Gaetano Veti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:48:20