You need to enable JavaScript to run this app. Python中map(int, input())构建二维列表的转换逻辑疑问
优惠活动
大模型
产品
解决方案
定价
更多

Python中map(int, input())构建二维列表的转换逻辑疑问

输出和预期不符的核心原因

  • 拆解map(int, input())的实际执行逻辑:
    • Python里字符串本身是逐字符可迭代的对象,map()的工作规则是遍历传入可迭代对象的每一个单独元素,对每个元素执行指定的映射函数,不会把整个可迭代对象当成单个值传入映射函数。
    • 当你把input()拿到的整行字符串(比如第一行输入的"101111")传给map(int, ...)时,map会逐个取出字符串里的每个字符——也就是'1'、'0'、'1'……分别传给int()转成单个数字,最后把这些单数字组成列表,就得到了你看到的逐位拆分的嵌套结构。
  • 你的认知偏差点在于:默认map会把传入的字符串作为单个整体传给int()做转换,但Python对字符串的迭代规则就是拆分到单个字符,和遍历列表时逐个取列表元素的逻辑完全一致,没有特殊的整行处理逻辑。

匹配你预期的代码写法

如果你想要得到「每个子列表仅包含整行对应的完整整数」的结果,不需要用map逐字符遍历字符串,直接对整行输入做整体转换即可,参考代码:

maze = [[int(input())] for _ in range(4)]

运行后输出就会符合你的预期,也就是每个子列表对应整行转成的完整整数:[[101111], [101010], [101011], [111011]]。

额外提示:如果你的使用场景是迷宫类题目,需要逐位存取每个格子的数字状态,那你原来写的代码逻辑是完全正确的,只是和你当前“把整行当成一个整数存取”的目标不匹配而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 00:36:07