2016-12-15 43 views
0

我需要通过类似如下的命令行传递一个二维表到我的程序:解析字符串运行时间参数列表2D

python myscript.py [[int,int,int],[int,int,int]] 

我得到通过sys.argv中的运行时间PARAM [1],但它被解释为一个字符串。我很难将其转换为2D列表对象。

+0

投票决定关闭我自己的问题...我发现这里的答案:http://stackoverflow.com/questions/19723911/convert-a-string-2d-list-back-to-2d-list-in-python – PyNoob

回答

1

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 
+0

烨,只是想通了您发布之前。感谢寿! – PyNoob

+0

笑纳,并给予好评。 – harshil9968

+1

upvoted,但是因为我在已发布的答案中找到答案,所以我不会将其标记为已接受 – PyNoob

0

最简单的方式做到这一点(假设你是给有效的字符串作为输入)

x=sys.argv[1] 

list_2D=[i.split(",") for i in x[2:-2].split("],[")] 

print list_2D 

输出:

[['1002763', '201608', '1'], ['1002763', '201612', '2']] 
+0

谢谢Atul。 – PyNoob