我需要通过类似如下的命令行传递一个二维表到我的程序:解析字符串运行时间参数列表2D
python myscript.py [[int,int,int],[int,int,int]]
我得到通过sys.argv中的运行时间PARAM [1],但它被解释为一个字符串。我很难将其转换为2D列表对象。
我需要通过类似如下的命令行传递一个二维表到我的程序:解析字符串运行时间参数列表2D
python myscript.py [[int,int,int],[int,int,int]]
我得到通过sys.argv中的运行时间PARAM [1],但它被解释为一个字符串。我很难将其转换为2D列表对象。
ast.literal_eval是你需要看看。
In [7]: x = '[[1002763,201608,1],[1002763,201612,2]]'
In [9]: import ast
In [10]: ast.literal_eval(x)
Out[10]: [[1002763, 201608, 1], [1002763, 201612, 2]]
In [11]: ast.literal_eval(x)[1]
Out[11]: [1002763, 201612, 2]
In [12]: ast.literal_eval(x)[1][2]
Out[12]: 2
烨,只是想通了您发布之前。感谢寿! – PyNoob
笑纳,并给予好评。 – harshil9968
upvoted,但是因为我在已发布的答案中找到答案,所以我不会将其标记为已接受 – PyNoob
最简单的方式做到这一点(假设你是给有效的字符串作为输入)
x=sys.argv[1]
list_2D=[i.split(",") for i in x[2:-2].split("],[")]
print list_2D
输出:
[['1002763', '201608', '1'], ['1002763', '201612', '2']]
谢谢Atul。 – PyNoob
投票决定关闭我自己的问题...我发现这里的答案:http://stackoverflow.com/questions/19723911/convert-a-string-2d-list-back-to-2d-list-in-python – PyNoob