作者cakewalks (大雪崩)
看板Python
标题Re: [问题] 想请教有关sorted的问题
时间Mon Jan 17 01:17:32 2011
※ 引述《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)