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

Python使用用户输入拼接数组报零维数组无法拼接错误问题

问题原因
  • input() 函数的返回值始终是字符串类型,你硬编码时传入的[[1],[2],np.repeat(3,3),[2]]是Python列表结构,二者完全不是一种数据类型。
  • 你直接把字符串传入np.concatenate时,numpy会将单个字符串识别为0维数组,不符合拼接要求,因此抛出Zero-dimensional arrays can not be concatenated错误。
解决方法

需要先将用户输入的字符串解析为Python可识别的序列结构:

  1. 如果输入都是纯字面量(无函数调用),推荐使用ast.literal_eval(比原生eval更安全,不会执行恶意代码)完成解析
  2. 如果输入包含np.repeat这类函数调用,确认输入来源安全的前提下,可以使用eval完成解析

修正后的代码如下:

import numpy as np
import ast

# 获取用户输入
input_str = input("PLEASE ENTER THE THING:: ")

# 无函数调用的安全解析方式
# lst_2 = ast.literal_eval(input_str)
# 包含函数调用、确认输入安全时用的解析方式
lst_2 = eval(input_str)

print('OKKKKL', lst_2)
result = np.concatenate(lst_2)
print(result)
输入示例

运行代码后,在输入提示处直接输入你硬编码时的列表内容即可:

[[1],[2],np.repeat(3,3),[2]]

注意:如果输入内容包含np.repeat这类numpy方法,需要保证当前代码环境已经导入numpy并起了np别名,否则会解析失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:36:04