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

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

獲取Python中最高的String版本號(hào)

獲取Python中最高的String版本號(hào)

慕妹3146593 2021-11-16 16:17:32
我正在嘗試在 Python 中獲取字符串的最高版本。我試圖對(duì)列表進(jìn)行排序,但這當(dāng)然不像 Python 對(duì)字符串表示進(jìn)行排序那樣容易。為此,我正在嘗試使用正則表達(dá)式,但不知何故不匹配。字符串看起來像這樣:topic_v10_ext2topic_v20_ext2topic_v2_ext2topic_v5_ext2topic_v7_ext2我的正則表達(dá)式看起來像這樣。version_no = re.search("(?:_v([0-9]+))?", v.name)我正在考慮將名稱保存在列表中并查找列表中最高的 v_xx 以返回。現(xiàn)在我也在兩個(gè) FOR 循環(huán)中執(zhí)行此操作。它以 2*O(log(n)) 運(yùn)行,我相信這不是最佳的。如何以快速簡單的方式獲得最高版本?
查看完整描述

2 回答

?
不負(fù)相思意

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

您可以使用sorted或list.sort與key:


sorted(l, key=lambda x:int(x.split('_')[1][1:]), reverse=True)

['topic_v20_ext2',

 'topic_v10_ext2',

 'topic_v7_ext2',

 'topic_v5_ext2',

 'topic_v2_ext2']

  • x.split('_'): 返回 splited str,例如:['topic', 'v20', 'ext2']

  • 由于版本是排序的關(guān)鍵,因此選擇它 x.split('_')[1]

  • SelectedV20有不需要的字符“V”,因此通過切片重新選擇它[1:]以獲取所有數(shù)字。

  • 最后,將數(shù)字轉(zhuǎn)換為 以int進(jìn)行數(shù)字排序。

此外,sorted默認(rèn)情況下返回排序的升序。由于您需要降序,請(qǐng)使用reverse=True.


查看完整回答
反對(duì) 回復(fù) 2021-11-16
?
撒科打諢

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

正如第一次嘗試的那樣,它還可以與正則表達(dá)式一起使用:


import re

v = 'topic_v7_ext2'

version_no = re.search("^[^_]*_v([0-9]+)", v)

print(version_no.group(1))

該表達(dá)式從字符串 (^) 的開頭搜索模式,取所有與 _ 不同的字符(我希望你的主題不能有一個(gè),否則兩個(gè)答案都是錯(cuò)誤的),然后找到 '_v' 并取版本號(hào).

不需要匹配_ext,所以不管有沒有!


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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