2017-06-08 14 views
2

内のリストに文字列を変換し、私はstring = "[1,2,3,4]"を持っていると私は唯一[1,2,3,4]を持つようにしたい、私はlist(mystring)をやってみましたが、それは私を与える:は、例えばパイソン

['[', '1', ',', '2', ',', '3', ',', '4', ']'] 

は、私はちょうど切り落とすたい文字列"[1,2,3,4]"""

私が欲しいの出力はプリントで作ることができ、それの出力は以下となります。

[1,2,3,4] 

が、私は、誰かが助けることができ、変数にその出力を取得する方法がわかりませんか?

+0

どのようにして、その文字列を取得するのですか? JSONから来ている場合は、おそらく 'json'モジュールを使用してPythonリストにロードする必要があります。それ以外の場合は、 'ast.literal_eval'を介してPython独自のリテラルパーサを使用します。 –

+0

私は実際には "オープンしてからそれを得る(" saved_DNA.txt " "R")としてf:mypop = f.readline()rstrip()"。そこにリストとして私のテキストファイルを読み込む方法がpropablyですが、今はそれが動作し、ast.literal_evalその出力を持つ私が – Tissuebox

答えて

5

使用ast.literal_eval

In [3]: import ast 

In [4]: s = "[1,2,3,4]" 

In [5]: ast.literal_eval(s) 
Out[5]: [1, 2, 3, 4] 

In [6]: L = ast.literal_eval(s) 

In [7]: L 
Out[7]: [1, 2, 3, 4] 
3
In [1]: import json 

In [2]: s = "[1,2,3,4]" 

In [3]: json.loads(s) 
Out[3]: [1, 2, 3, 4] 
2

のように、あなたはリストの内包表記を使用して、数字を確認することができます

s = "[1,2,3,4]" 
s_list = [int(x) for x in s.strip('[]').split(',')] 
+1

必要なものをあなたはそれを行うことができますが、マルタインピータース氏は述べていますように、なぜ犬を持っているし、自分を吠え? :) –

0

いくつかの文字列関数を使用します。

s = "[1,2,3,4]" 
lst = [int(x) for x in s if x.isdigit()] 

出力:

[1, 2, 3, 4] 
+2

2桁以上の数字がある場合はうまくいきません。 –