第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從字符串值創(chuàng)建唯一的短 ID

從字符串值創(chuàng)建唯一的短 ID

胡子哥哥 2023-06-06 16:19:18
我有一些數(shù)據(jù)具有以字符串形式存儲(chǔ)的唯一 ID:ddd.dddddaddd.dddddz哪里d是一些數(shù)字和a/z是一些字母字符。數(shù)字可以是 0-9,字符可以是Eor Wfor thea和Nor Sfor the z。我想把它變成一個(gè)唯一的整數(shù),我嘗試使用該hashlib模塊返回:>>> int(hashlib.sha256(str.encode(s)).hexdigest(), 16) Output: a very long integer (on another system cannot copy it)有沒有辦法從字符串中生成一個(gè)唯一的整數(shù) ID,使其不超過 12 位?我知道我永遠(yuǎn)不需要超過 12 位的唯一整數(shù) ID。
查看完整描述

2 回答

?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

只是一些簡(jiǎn)單的事情:


>>> s = '123.45678W123.45678S'

>>> int(s.translate(str.maketrans('EWNS', '1234', '.')))

123456782123456784

不是您在問題中仍然要求的不可能的 12 位數(shù)字,而是您在評(píng)論中允許的 20 位數(shù)字以下。


查看完整回答
反對(duì) 回復(fù) 2023-06-06
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊

由于您正在處理坐標(biāo),我會(huì)盡力將信息保留在最后的 12 位 ID 中。

  • 如果您的點(diǎn)是全球性的,則可能有必要保留度數(shù),但它們可能分布廣泛,因此您可以在精度方面犧牲一些信息。

  • 如果您的點(diǎn)是局部的(都在小于 10 度的范圍內(nèi)),您可能會(huì)跳過度數(shù)的前兩位數(shù)并關(guān)注小數(shù)點(diǎn)。

  • 由于兩個(gè)點(diǎn)可能彼此接近,因此保留一位數(shù)字作為序列號(hào)可能是謹(jǐn)慎的做法。

廣泛點(diǎn)的建議:

s = "123.45678N123.45678E"

ident = "".join([s[0:6],s[10:16]]).replace(".","")

q = 0

if s[9]=="N":

    q+=1

if s[-1]=="E":

    q+=2

ident+=str(q)+'0'

該示例將轉(zhuǎn)換為123451234530.


在計(jì)算出每個(gè) ID 的初始ident數(shù)字后,您應(yīng)該遍歷它們并遞增最后一位數(shù)字(如果ident已使用)。


通過這種方式,您可以通過將前 10 位數(shù)字分隔為格式 ddd.dd 的兩度并使用 [-2] 數(shù)字作為象限的指示符(0:SW,1:SE, 2:西北,3:東北)。


查看完整回答
反對(duì) 回復(fù) 2023-06-06
  • 2 回答
  • 0 關(guān)注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)