如何将字符串形式的坐标对列表转换为浮点数对列表?
我正在从一个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 的解答!