你好,我正試圖對我的顯微鏡影像進行分類。 我在使用Python 3.7 檔案名是這樣的:T0, T1, T2
S18_b0s17t0c0x62672-1792y6689-1024.tif
S18_b0s17t1c0x62672-1792y6689-1024.tif
S18_b0s17t2c0x62672-1792y6689-1024.tif
.
.
.
S18_b0s17t145c0x62672-1792y6689-1024
我試著對串列進行了 "排序",但結果是這樣的
誰能給我一些提示,讓我按順序進行分類
uj5u.com熱心網友回復:
我認為你可以使用lambda函式為sorted函式定義排序鍵
lst = ["S18_b0s17t0c0x62672-1792y6689-1024.tif"/span>, "S18_b0s17t1c0x62672-1792y6689-1024. tif", "S18_b0s17t2c0x62672-1792y6689-1024.tif" , "S18_b0s17t145c0x62672-1792y6689-1024"]
sorted_lst = sorted(lst, key=lambda filename: filename[10: ] 。 split('c')[0])
uj5u.com熱心網友回復:
你可以使用一個正則運算式來提取檔案名中的整數,這應該可以解決100在2之前的問題。
files = ['S18_b0s17t100c0x62672-1792y6689-1024. tif','S18_b0s17t1c0x62672-1792y6689-1024.tif','S18_b0s17t2c0x62672-1792y6689-1024.tif']
sorted(files, key=lambda x: int(re.findall('Sd{1,2}\_bdsd{1,2}t(d )',x)[0] )
輸出
['S18_b0s17t1c0x62672-1792y6689-1024.tif'/span>,
'S18_b0s17t2c0x62672-1792y6689-1024.tif',
'S18_b0s17t100c0x62672-1792y6689-1024.tif']
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/328379.html
標籤:
