m0_57748717 2022-05-02 23:13 采纳率: 76.3%
浏览 20
已结题

python创建函数中以函数传入参数问题


def apply_to_list(some_list, f):
    return [f(x) for x in some_list]


ints = [4, 0, 1, 5, 6]
test_apply_to_list = apply_to_list(ints, lambda x: x * 2)
print(test_apply_to_list)

最近看书遇到这个代码片段,传入函数中的f参数和return里面的f(x)我不太理解是什么意思,下面的lambda传入后是不是变成[lambda x:x*2 for in ints]呢?希望能直白点解释一下这个问题,感谢

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-05-02 23:27
    关注

    f是函数名,也就是lambda表达式
    其实lambda表达式遵循的就是数学函数的思想,例子里的表达式等价于数学里的 f(x) = x * 2
    apply_to_list的自定义函数里的return语句是个列表生成式,表示在传入的list里遍历元素赋值给x,然后再把x交给lambda表达式的函数f去计算,也就是乘以2,返回的结果放到一个新的列表里返回。
    所以最终结果是把ints列表里的每个元素乘以2,并返回一个新的列表打印出来。
    [8, 0, 2, 10, 12]

    结果等价于
    [x*2 for x in ints]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 5月2日

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮