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

如何通过Python的input()函数获取二维列表形式的矩阵?

解决input()获取二维列表输入的问题

要把用户输入的[[1,2],[3,4]]格式字符串转换成可操作的二维列表,有两种常用方法:

方法1:使用eval()(简单但需注意安全)

直接用eval()解析输入字符串,它会把符合Python语法的字符串转换成对应的数据结构:

data = eval(input())
print(data)
# 输入[[1,2],[3,4]],输出[[1,2],[3,4]],此时data是标准二维列表,可直接操作

⚠️ 注意:如果输入来源不可信(比如用户输入恶意代码),eval()会执行代码带来安全风险,仅在可控输入场景使用。

方法2:使用ast.literal_eval()(安全推荐)

ast.literal_eval()是更安全的替代方案,它只会解析Python字面量(列表、字典、数字等),不会执行任意代码:

import ast

data = ast.literal_eval(input())
print(data)
# 效果和eval一致,但即使输入恶意代码也会抛出异常,不会执行

为什么list(input())会出错?

input()返回的是完整字符串"[[1,2],[3,4]]",list()会把字符串的每个字符拆分成列表元素,最终得到的是:

['[', '[', '1', ',', '2', ']', ',', '[', '3', ',', '4', ']', ']']

这显然不是你需要的二维列表结构。

内容的提问来源于stack exchange,提问作者S.A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:17:32