亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號