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

PyCharm中split()相关代码运行结果与其他环境不一致的原因

代码输出不一致?其实是逻辑错误

你遇到的不是PyCharm和其他环境的差异问题,核心是代码逻辑本身错了。

看你代码里的关键行:

my_arr = [list(map(int, input_2.split())) for _ in range(N)]

input_2.split()默认会把**所有空白字符(包括换行符\n)**当成分隔符,直接把整个input_2拆成['1', '2', '3', '4']。循环N次(2次)后,每次都把这个完整列表转成整数列表,自然得到[[1,2,3,4], [1,2,3,4]]——这是所有Python环境下的统一结果。

你说在HackerRank或ChatGPT控制台得到了预期的[[1,2],[3,4]],大概率是你在那些环境里运行的代码不是硬编码的input_2版本,而是用input()函数循环读取每行输入,比如正确的写法应该是:

import numpy as np
input_1 = '2 2'
input_2 = '1 2\n3 4'
N, M = map(int, input_1.split())
# 先按换行分割input_2,再逐行处理
my_arr = [list(map(int, line.split())) for line in input_2.split('\n')]
print(np.prod(np.sum(my_arr, axis=0)))

如果是真实输入场景(比如HackerRank的输入),正确写法是:

import numpy as np
N, M = map(int, input().split())
my_arr = [list(map(int, input().split())) for _ in range(N)]
print(np.prod(np.sum(my_arr, axis=0)))

这种写法才会逐行读取输入,生成符合预期的二维数组。

你误以为是环境差异,本质是在不同环境里运行的代码并非完全一致,并非PyCharm或其他平台的Python解释器有区别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:03:18