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

0 投票
2 回答
5684 浏览
提问于 2025-04-21 10:28

我正在从一个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 个回答

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]]
0

使用 .split(",") 而不是 .split(", ")

(注意没有空格)

感谢 Zero Piraeus 的解答!

撰写回答