为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

大话西游666 2023-05-16 16:45:29
我有一个纬度和经度列表如下:['33.0595° N', '101.0528° W']我需要将它转换为 floats [33.0595, -101.0528]。当然,“-”是唯一的区别,但它会随着半球的改变而改变,这就是为什么图书馆是理想的,但我找不到。
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以将以下代码包装在一个函数中并使用它:


import re


l = ['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]

结果符合您的预期。


查看完整回答
反对 回复 2023-05-16
?
ITMISS

TA贡献1871条经验 获得超8个赞

以下是我解决问题的方法。我认为之前的答案使用的正则表达式可能会慢一点(需要进行基准测试)。


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 West



converted = [convert(coord) for coord in data] # [33.0595, -101.0528]


查看完整回答
反对 回复 2023-05-16
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信