2017-06-13 62 views
1

所以我必須格式化像Python的列表:Python的字符串轉換列表列出

x = ['[1,2,3]', '[4,5,6,]', ...] 

有沒有辦法轉換的「內部名單」,以實際的名單?所以輸出將是

x = [[1,2,3], [4,5,6], ....] 

謝謝!

回答

1

又如與json

>>> import json 
>>> x = ['[1,2,3]', '[4,5,6]'] 
>>> [json.loads(y) for y in x] 
[[1, 2, 3], [4, 5, 6]] 

請限制您的字符串只dict S和list秒。

+0

我接受了這個答案與khelwood提出的答案(他的解決方案也解決了我的問題),因爲我的完整代碼已經使用了json庫。 – Ahmed

0

您可以使用ast.literal_eval進行此類轉換。您可以使用map將轉換應用於列表中的每個元素。

from ast import literal_eval 

x = ['[1,2,3]', '[4,5,6,]'] 
x = map(literal_eval, x) 
print x 

[[1, 2, 3], [4, 5, 6]] 
0

您可以使用eval將字符串評估爲代碼。

x = ['[1,2,3]', '[4,5,6,]'] 
y = [eval(s) for s in x] 
+0

使用'eval'通常是不鼓勵的。 – khelwood