看板 Python 關於我們 聯絡資訊
※ 引述《DP1010 (DP)》之銘言: : 請教板上各位大大 : 我現在有一個檔案裡面長這樣 : ai3-u2 52 : ai3-zor3 23 : am3-si5 30 : an1-zuan5 37 : an3-giann2 19 : . : 第一行是音 第二行是頻率 : 現在這個檔案是照著第一行來做排序 : 可是排序方式也有受到第一行其中的數字影響 : 我現在想要改成不要受到第一行的數字跟'-'得影響 : 就只要依據第一行的英文字母來排序就好 : 例如:an3-giann2 應該排在an1-zuan5上面才對 : 想請教該怎麼做 : 謝謝 data = [("ai3-u2", 52), ("ai3-zor3", 23), ("am3-si5", 30), ("an1-zuan5", 37), ("an3-giann2", 19)] def my_key(item): return "".join(c for c in item[0] if c.isalpha()) data.sort(key=my_key) 希望沒錯 :P 不用 list comprehension 也可以用 filter,如下 def my_key(item): return filter(str.isalpha, item[0]) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.172.245.60 ※ 編輯: cakewalks 來自: 218.172.245.60 (01/17 01:18) ※ 編輯: cakewalks 來自: 218.172.245.60 (01/18 02:39)