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

能否用函数式编程将指定Python3代码改写为单行?

用函数式风格改写为单行Python代码

当然没问题!这段代码的核心逻辑是读取height行输入,每行将width个字符(0或.)转换成布尔值列表('0'对应True,.对应False),最终生成二维网格。借助Python的列表推导式(这是Python中函数式编程风格的常用实现方式),完全可以把它压缩成一行,而且逻辑和原代码完全一致:

grid = [[c == '0' for c in input()] for _ in range(height)]

拆解说明:

  • 外层列表推导式 [... for _ in range(height)]:循环height次,每次处理一行输入,对应原代码的外层for i in range(height)循环。
  • 内层列表推导式 [c == '0' for c in input()]:读取一行输入后,遍历每个字符c,判断是否等于'0'并生成布尔值列表,对应原代码中构建row的内层循环。

如果想更贴近传统函数式编程的写法(用map函数),也可以这样实现:

grid = [list(map(lambda c: c == '0', input())) for _ in range(height)]

不过前者的列表推导式在Python社区中通常更易读,也是更被推荐的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:35:56