如何将字符串中的坐标拆分为较小列表的列表

use*_*009 2 python string split python-3.x

我试图将坐标“(x1,y1),(x2,y2)”的字符串转换为[[x1,y1],[x2,y2]],其中所有坐标也都转换为浮点数。

我当前的代码似乎没有修剪y坐标的空格,也没有将字符串转换为浮点数。

coordinates = "(-89.38477, 26.6671), (-89.38477, 27.13737), (-88.81348, 27.13737), (-88.81348, 26.6671)"
for x in re.findall("\((.*?)\)", coordinates):
        final_coordinates = x.lstrip().split(',')
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 5

一种选择是将coordinates方括号括起来并使用literal_eval():

>>> from ast import literal_eval
>>> coordinates = "(-89.38477, 26.6671), (-89.38477, 27.13737), (-88.81348, 27.13737), (-88.81348, 26.6671)"
>>>
>>> data = list(literal_eval(coordinates))
>>> data
[(-89.38477, 26.6671), (-89.38477, 27.13737), (-88.81348, 27.13737), (-88.81348, 26.6671)]
Run Code Online (Sandbox Code Playgroud)

  • `list(literal_eval(coordinates))`怎么样? (2认同)