Python,将坐标度数转换为小数点

我有一个纬度和经度列表如下:

['33.0595° N', '101.0528° W']

我需要将它转换为 floats [33.0595, -101.0528]

当然,“-”是唯一的区别,但它会随着半球的改变而改变,这就是为什么图书馆是理想的,但我找不到。


大话西游666
浏览 124回答 2
2回答

鸿蒙传说

您可以将以下代码包装在一个函数中并使用它:import rel = ['33.0595° N', '101.0528° W']new_l = []for e in l:    num = re.findall("\d+\.\d+", e)    if e[-1] in ["W", "S"]:        new_l.append(-1. * float(num[0]))    else:        new_l.append(float(num[0]))print(new_l)  # [33.0595, -101.0528]结果符合您的预期。

ITMISS

以下是我解决问题的方法。我认为之前的答案使用的正则表达式可能会慢一点(需要进行基准测试)。data = ["33.0595° N", "101.0528° W"]def convert(coord):    val, direction = coord.split(" ") # split the direction and the value    val = float(val[:-1]) # turn the value (without the degree symbol) into float    return val if direction not in ["W", "S"] else -1 * val # return val if the direction is not Westconverted = [convert(coord) for coord in data] # [33.0595, -101.0528]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python