2016-05-10 11 views
0

文字列は、アレイのすべての書式を持っていますこの文字列を配列に変換するにはどうすればよいですか?

myString="['ASK', 'NOT', 'WHAT', 'YOUR', 'COUNTRY', 'CAN', 'DO', 'FOR', 'YOU']" 

私はこの配列にしたいです。私はどのようにそれをPythonで行うのですか?

+1

あなたはそれが少し危険だ場合でも、evalの()関数を使用することができます。 ast.literal_evalは、関数を実行しないので、より優れています。 – Kavli

+1

@Kavliソースが信頼されている場合は、 'eval'や' exec' *の使用には何も問題ありません。唯一の入力を入力する小さなおもちゃプロジェクトでは、ソースが信頼できると想定するのが安全です。 'collections.namedtuple'は' exec'を使ってクラスを構築します。しかし、それは引数が有効な識別子であることを証明するので、 'exec'は期待通りにしか動作しません。 – Dunes

答えて

0

これは趣味のプロジェクトである場合は、それが実際に配列されていることを確認したい場合は、eval()を使用することができます。

string = ['ASK', 'NOT', 'WHAT', 'YOUR', 'COUNTRY', 'CAN', 'DO', 'FOR', 'YOU'] 
string = eval(string) 

あなたはより安全な何かをしたい場合、あなたはどのないでしょうliteral_evalを使用することができます機能を実行する。

あなたは( evalよりも安全である) literal_evalを使用するか、またはあなたがJSON文字列として扱うことができ
0

from ast import literal_eval 

li = literal_eval("['ASK', 'NOT', 'WHAT', 'YOUR', 'COUNTRY', 'CAN', 'DO', 'FOR', 'YOU']") 

# or with the json module 

import json 
li = json.loads("['ASK', 'NOT', 'WHAT', 'YOUR', 'COUNTRY', 'CAN', 'DO', 'FOR', 'YOU']") 
関連する問題