我需要通過類似如下的命令行傳遞一個二維表到我的程序:解析字符串運行時間參數列表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