2016-05-09 59 views
-2

的名單上有格式的字符串 -如何解析字符串轉換成元組

" ((4, 4), (11, 23), (8, 2), (12, 4), (7, 9)) " 

是什麼,我會得到這個字符串變成有意義的整數元組的最好方法? 可以說fun(s)是一個函數,它接受這樣strings作爲參數並返回的tuplea

list例。

a = fun("((2, 3), (1, 4))") 
print (a) 
>>> [(2, 3), (1, 4)] 
a[0] 
>>> (2, 3) 
a[0][1] 
>>> 3 
+0

這是爲什麼downvoted?在提出問題之前,我已經採取了幾乎所有的努力(編輯,格式化,拼寫錯誤)。 – user3903448

+0

讓我知道什麼是失蹤之前downvoting它。 – user3903448

回答

-2

您可以使用Python內置的eval()函數。

在這種情況下,你可以寫你這樣的代碼:

s = " ((4, 4), (11, 23), (8, 2), (12, 4), (7, 9)) " 
print(list(eval(s))) 
1

對於這種事情,ast.literal_eval最好只是內置eval,特別是如果字符串是什麼,可能來自一個未知的來源。調用接口是一樣的eval

print(list(ast.literal_eval(s))) 

然而,ast.literal_eval將防範可能調用系統服務(如那些可能會刪除文件等)的代碼插入,並且只接受文字值。