在python中将字符串视为列表对象

在python中将字符串视为列表对象,python,Python,我正在编写一个python程序,从命令行获取用户输入。用户被告知以列表格式输入值,即用户可以输入[1,2]、[2,7]、[4,3]等 我将在“”和“处拆分此输入字符串,以便我的程序可以访问以下列表: ['[1, 2]', '[2, 7]', '[4, 3]'] 有没有办法将这些“字符串列表”转换为实际列表?我不想拆分这些字符串,删除括号,提取值,然后手动创建一个新列表 谢谢 import json data = json.loads("[%s]" % user_input) user\u i

我正在编写一个python程序,从命令行获取用户输入。用户被告知以列表格式输入值,即用户可以输入
[1,2]、[2,7]、[4,3]

我将在“
”和“
处拆分此输入字符串,以便我的程序可以访问以下列表:

['[1, 2]', '[2, 7]', '[4, 3]']
有没有办法将这些“字符串列表”转换为实际列表?我不想拆分这些字符串,删除括号,提取值,然后手动创建一个新列表

谢谢

import json
data = json.loads("[%s]" % user_input)
user\u input
是用户输入的str。在你的情况下是这样的

[1,2],[2,7],[4,3]

数据
是您想要的-一个列表包含两个项目列表

user\u input
是用户输入的str。在你的情况下是这样的

[1,2],[2,7],[4,3]


数据是您想要的-一个列表包含两个项目列表。

因为您要求用户提供一个文本Python列表,所以可以让Python为您评估该列表
literal\u eval()
仅适用于文本,因此不可能像使用
eval()


由于您要求用户提供一个文本Python列表,因此可以要求Python为您评估该列表
literal\u eval()
仅适用于文本,因此不可能像使用
eval()


不,split函数将分割括号内的逗号,因为您必须使用一些字符串操作,没有“自动”方法。
eval()
有效吗?除了所有的安全漏洞和漏洞以及。。。没关系。您可以将输入包围在
[]
中,然后它将成为一个有效的JSON列表,您可以使用
JSON.loads
来解析它?不,split函数将分割括号内的逗号,因为您必须使用一些字符串操作,没有“自动”方式。
eval()
有效吗?除了所有的安全漏洞和漏洞以及。。。没关系。您可以将输入包围在
[]
中,然后它将成为一个有效的JSON列表,您可以使用
JSON.loads
来解析它?嗯,我得到了“ValueError:无法解码JSON对象。”@Danny给我用户输入标准如果querent要求对json文本进行求值,那么这是正确的。我将用户输入作为*参数传递给函数。当我在函数中打印出这个输入时,我得到:(['[1,2]','[2,7]','[4,3]',)@Danny,另外一件事,你的用户输入字符串和你在问题中描述的不一样。也许你获取用户输入的方法有一些错误。嗯,我得到的是“ValueError:没有JSON对象可以被解码。”@Danny给我用户输入标准如果querent要求对json文本进行求值,那么这是正确的。我将用户输入作为*参数传递给函数。当我在函数中打印出这个输入时,我得到:(['[1,2]','[2,7]','[4,3]',)@Danny,另外,你的用户输入字符串与你在问题中描述的不一样。也许你获取用户输入的方法有一些错误。
>>> from ast import literal_eval
>>> literal_eval('[1, 2], [2, 7], [4, 3]')
([1, 2], [2, 7], [4, 3])                           #input was a tuple

>>> list(literal_eval('[1, 2], [2, 7], [4, 3]'))
[[1, 2], [2, 7], [4, 3]]