2014-02-16 57 views
0

我想爲一個字符串,看起來像這樣轉換成元組的數組如何將其轉換爲數組?

"[(1,2), (2,3), (4,5)]" - >[(1,2), (2,3), (4,5)]

這是我想的代碼體填充:

def convert_to_polygon(polygon_string): 

    return polygon_array 

我應該使用Python庫嗎?這個工作是否存在?

+4

元組有'()',列表有'[]'。你顯示的那個被稱爲set {}'。所以,請澄清你想要做什麼以及你真正想要什麼。 – thefourtheye

+0

所以我想能夠做到這一點:polygon_array [x] [0],其中x是索引對,[0]是該對中的第一個。我會使用元組,列表還是集合?我對此很陌生。 – user3043594

回答

4

您可以使用ast.literal_eval

>>> import ast 
>>> s = '{{1,2},{2,3},{4,5}}' 
>>> polygon_array = ast.literal_eval(s.replace('{', '(').replace('}', ')')) 
>>> polygon_array 
((1, 2), (2, 3), (4, 5)) 
>>> polygon_array[1][0] 
2 

使用list(polygon_array)如果你想要一個元組列表。

1
>>> def convert_to_polygon(polygon_string): 
...  return eval(polygon_string) 
... 
>>> polygon_string = "[(1,2), (2,3), (4,5)]" 
>>> convert_to_polygon(polygon_string) 
[(1, 2), (2, 3), (4, 5)]