如何将字符串形式的坐标对列表转换为浮动对列表?

时间:2014-09-12 23:30:45

标签: python string list python-3.x

我正在读取kml文件的坐标列表,给出了这个输出:

['-73.9972973,40.7075148', ..., '-73.9850235,40.7900946']

(想象一下......作为更多类似于第一个和最后一个的坐标) 我使用以下代码尝试完成此操作,但它无法正常工作。

manhattanCoords = []

for coord in coords:
    pair = [float(s) for s in coord.strip().split(", ")]
    manhattanCoords.append(pair)

我收到以下错误:

Traceback (most recent call last):
  File "Manhattan_Coords_Extract.py", line 12, in <module>
    pair = [float(s) for s in coord.strip().split(", ")]
  File "Manhattan_Coords_Extract.py", line 12, in <listcomp>
    pair = [float(s) for s in coord.strip().split(", ")]
ValueError: could not convert string to float: '-73.9972973,40.7075148'

有人有任何建议吗?

2 个答案:

答案 0 :(得分:3)

您可以遍历列表,并在.split()字符上','。然后,您可以将它们转换为float。在列表理解中,将是以下内容。

l = ['-123.456,532.643', '245.234,241.678', '345.342,344.342']
coords = [map(float,i.split(',')) for i in l]

>>> coords
[[-123.456, 532.643], [245.234, 241.678], [345.342, 344.342]]

答案 1 :(得分:0)

使用.split(“,”)而非.split(“,”)

(没有空格)

感谢Zero Piraeus的回答!