有的時候,我們需要將字串來排序,而該字串又是有一定規律的,比如上面巢狀了數字,如"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所能...