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

如何使用列表推导式优化重写Python循环输入存列表的代码

实现方案

完全可以用列表推导式实现同等功能,且相比原写法更简洁、运行效率更高。

列表推导式写法(推荐常规场景使用)

原逻辑不需要手动初始化空列表、不需要定义临时变量存每次的输入值,直接通过列表推导式即可一步完成列表构建:

t1 = [int(input()) for _ in range(10)]

写法说明:

  • 循环中不会用到的迭代变量用_作为占位符,是Python社区约定俗成的写法,明确标识该变量无实际业务用途
  • 原代码中range(0,10)可简写为range(10),range的默认起始值就是0,无需额外传参
  • 相比显式循环+append的写法,列表推导式在解释器层面做了优化,减少了方法调用开销,运行速度更快

批量输入场景的优化写法

如果是非交互式的批量输入场景(比如读取重定向的文件输入、管道输入),逐次调用input()会产生多次IO开销,此时可以一次性读取所有输入内容再做处理,性能更好:

import sys
# 读取全部输入行,取前10行转换为整数
t1 = list(map(int, sys.stdin.read().splitlines()[:10]))

这个写法不适合需要用户交互式逐行输入的场景,因为会一次性读取所有输入内容,不会等待用户逐次输入。

注意:以上写法默认输入内容均为可转换为整数的合法值,如果需要兼容用户输错内容的场景,要额外添加异常捕获逻辑,避免int()转换失败触发程序崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 08:33:11