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

如何用sys.stdin.readlines()将输入转为Python整数列表?

解决方法:将标准输入的数字转为整数列表

没问题,我来帮你搞定这个转换问题!你现在遇到的核心问题是sys.stdin.readlines()会把每一行输入(包括换行符\n)都作为字符串元素存入数组,而我们需要的是把所有输入的数字统一转成整数列表。这里有几种简洁高效的处理方式:

通用处理方案(支持单行/多行输入)

不管你的输入是一行用空格分隔的数字,还是每行一个数字,这个方法都能完美处理:

import sys

# 1. 读取所有行并合并成一个完整字符串
all_input = ''.join(sys.stdin.readlines())
# 2. 分割成单个数字字符串(自动忽略空格、换行、制表符等空白)
num_strings = all_input.split()
# 3. 把每个字符串转成整数,生成最终列表
int_list = [int(num) for num in num_strings]

或者用更简洁的链式写法:

import sys

int_list = list(map(int, ''.join(sys.stdin.readlines()).split()))

单行输入专属简化方案

如果你确定输入只会是一行用空格分隔的数字,那可以直接用readline()代替readlines(),代码更短:

import sys

int_list = [int(num) for num in sys.stdin.readline().split()]

为什么这些方法能解决问题?

  • ''.join(sys.stdin.readlines()):把所有读取到的行字符串拼接成一个整体,消除了每行末尾的\n。
  • split():默认会按任意空白字符(空格、换行、制表符等)分割字符串,所以不管数字是怎么排版的,都能准确拆分出每个数字的字符串。
  • 最后通过列表推导式或map(int, ...)把每个字符串数字转成整数类型,得到你需要的整数列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:38:13