Python根據內嵌的數字將字串來排序

2021-08-21 16:14:25 字數 826 閱讀 1409

有的時候,我們需要將字串來排序,而該字串又是有一定規律的,比如上面巢狀了數字,如"file2.txt file11.txt file8.txt file5.txt"排列成"file2.txt file5.txt file8.txt file11.txt",因為python預設的字串排序是基於字元ascii來排序的,一般file11.txt是在file2.txt,如果要實現上面的需求,要如何處理呢?

import re

re_digits = re.compile(r'(\d+)')

def embedded_numbers(s):

pieces = re_digits.split(s) # 切成數字和非數字

pieces[1::2] = map(int, pieces[1::2]) # 將數字部分轉成整數

return pieces

def sort_string(lst):

return sorted(lst, key=embedded_numbers) # 將前面的函式作為key來排序

files = "file2.txt file8.txt file11.txt file5.txt"

files = files.split(' ')

print(' '.join(sort_string(files)))

使用了上面的處理後,就可以將內嵌的數字進行排序了。 排列的結果就是我們想要的了。

>>> file2.txt file5.txt file8.txt file11.txt

>>>

將Office內嵌的自己的WinForm程式

因小組考試系統開發需要,以前整理過office內嵌到自己的winform程式裡,有需要的可以看下。其實思路就是把office軟體當做我們winform程式窗體的子窗體,呼叫幾個系統api就行了,這裡實現的在winform裡開啟,修改,儲存word,excel,ppt文件的需要。想實現更多功能的可以再...

mongodb中根據內嵌文件中的條件查詢

在寫報使用者訂單報表的時候遇到了乙個mongodb的查詢問題,上網上也找了下資料,在這裡記錄一下 根據訂單文件中的內嵌文件裡的資料進行查詢資料庫 prodcatid 02001 txntype 30 prodid zdsjyz0622 03 ordertime 2017 06 23 17 50 20...

python將nan, inf轉為特定的數字

最近,處理兩個矩陣的點除,得到結果後,再作其他的計算,發現有些內建的函式不work 檢視得到的資料,發現有很多nan和inf,導致python的基本函式執行不了,這是因為在除的過程中分母出現0的緣故。為了將結果能夠被python其他函式處理,尤其numpy庫,需要將nan,inf轉為python所能...