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

あなたが投稿する前に、ちょうどそれを見つけました。ありがとうtho! – PyNoob

+0

親切に受け入れてupvote。 – 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

アトゥール、ありがとうございます。 – PyNoob