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

Python使用filter配合lambda筛选可整除数字时出现filter预期2参数仅得1错误

报错排查与解决

报错原因

filter()函数要求传入2个参数:第一个是判断用的函数,第二个是待筛选的可迭代对象。你的代码存在括号配对错误:把filter的第二个参数my_list、额外传入的a都写在了lambda定义的小括号内部,最终filter只拿到了1个参数,触发TypeError。
同时你给lambda额外定义了不必要的a参数:a已经在外部作用域定义完成,lambda可以直接读取使用,不需要作为参数传入。

修正后的代码

my_list = [11, 12, 15, 3, 6, 33, 58]
a = int(input("Enter number by which we'll divide: "))
# 修正括号位置,去掉lambda多余的a参数
divs = list(filter(lambda x: x%a == 0, my_list))
print("Divisible numbers are: ", divs)

验证逻辑

运行代码后输入测试值,比如输入3,会输出Divisible numbers are: [12, 15, 3, 6, 33],符合筛选预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:24:03