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

HackerRank场景下Python多行输入代码解析(新手问询)

HackerRank多行输入代码解析

你遇到的场景是:输入第一行是整数n(表示要读取的数组数量和每个数组的长度),后面跟着n行数组数据。直接用input()只能读取一行,下面逐行解析这段代码的工作原理:

  • 第一行:n = int(input().strip())
    input()读取控制台第一行输入内容,strip()去掉内容首尾的空白字符(包括换行、空格、制表符),最后用int()把处理后的字符串转成整数,这个n就是后续要读取的数组行数。

  • 第二行:arr = []
    初始化一个空列表,用来存储后续读取的所有数组数据,最终会变成二维列表。

  • 循环部分:for _ in range(n):
    这里的_是Python里的占位符变量,因为循环只需要执行n次,不需要用到循环变量的具体值,用_代替是业内约定俗成的写法。

  • 循环体:arr.append(list(map(int, input().rstrip().split())))
    这一行可以拆成几步理解:

    1. input().rstrip():读取当前循环对应的一行输入,rstrip()只去掉行尾的空白(比如换行符),避免行尾多余空白干扰后续处理;
    2. .split():把当前行的字符串按任意空白字符(空格、制表符等)分割,得到一个字符串列表,比如输入"11 2 4"会变成["11", "2", "4"];
    3. map(int, ...):把分割后的每个字符串元素转换成整数,map函数会将int函数依次作用到列表的每个元素上,返回一个迭代器;
    4. list(...):把map返回的迭代器转换成整数列表,比如["11", "2", "4"]会变成[11, 2, 4];
    5. arr.append(...):把这个整数列表添加到arr中,循环执行n次后,arr就会包含所有输入的数组数据。

比如你给的示例输入,执行完这段代码后,arr的值是:

[[11, 2, 4], [4, 5, 6], [10, 8, -12]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:22:11