2016-05-10 33 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,不會執行功能。

0

您可以使用literal_eval(這是較安全eval),或者你可以把它當作一個JSON字符串:

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']") 
相關問題