2016-12-15 40 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