Python将正确格式化为数组的用户输入转换为int数组

Python将正确格式化为数组的用户输入转换为int数组,python,arrays,Python,Arrays,我想知道是否有一种方法可以将格式正确的用户输入数组,即“[2,1,1]”作为用户输入,然后将其转换为[2,2,1]的整数数组。您可以使用它将表示文本Python表达式的字符串安全地解析为Python对象: import ast ast.literal_eval('[2,1,1]') # [2, 1, 1] 如果字符串是有效的JSON,那么可以使用JSON。加载: import json json.loads('[2,1,1]') # [2, 1, 1] 在这两种方法中,当字符串都是文本P

我想知道是否有一种方法可以将格式正确的用户输入数组,即“[2,1,1]”作为用户输入,然后将其转换为[2,2,1]的整数数组。

您可以使用它将表示文本Python表达式的字符串安全地解析为Python对象:

import ast

ast.literal_eval('[2,1,1]')
# [2, 1, 1]
如果字符串是有效的JSON,那么可以使用
JSON。加载

import json

json.loads('[2,1,1]')
# [2, 1, 1]

在这两种方法中,当字符串都是文本Python表达式和JSON时,
JSON.loads
更快。

Python有列表,而不是数组。那么我为什么要导入“数组”?我不知道。您的问题没有显示您这样做的任何迹象。好的,谢谢您提供的信息!ast.literal_eval(input())可以工作,但用say s=input()替换输入ast.literal_eval似乎不起作用。这是怎么回事?@Jelly这些应该是等效的。可能还有其他错误。@Jelly:完整的回溯错误消息是什么?(“不起作用”几乎永远不足以让我们提供帮助。)我不知道了,我拿出了我的's'字符串,只是用input()来获取数据,然后我把's'放回去为您获取错误,但现在它似乎起作用了。我一定是打错了。