Python 3.3.2 - 在忽略元音的同时对列表进行排序

时间:2013-08-16 23:47:17

标签: sorting python-3.x

我正在创建一个对列表进行排序的程序(就像list.sort())但它不会计算元音。这就是我的意思:

我有一个...... ['acd', 'ibc', 'ebb', 'zzaeib']或类似的列表。正常的排序程序会将结果作为结果:['acd', 'ebb', 'ibc', 'zzaeib']。我的排序将需要忽略元音,对其进行排序,并将元音放回并返回结果列表。例如,它会将上面的列表视为['cd', 'bc', 'bb', 'zzb']。然后它会对它进行排序(['bb', 'bc', 'cd', 'zzb'])并将元音放回(['ebb', 'ibc', 'acd', 'zzaeib'])。

以下是不同之处:

正常排序:['acd', 'ebb', 'ibc', 'zzaeib']

自定义排序:['ebb', 'ibc', 'acd', 'zzaeib']

我知道我可以使用sort(list.sort(key=whatever_key))的关键功能,但我看不到这样做的方法。提前谢谢。

罗布。

1 个答案:

答案 0 :(得分:2)

  

我知道我可以使用sort

的关键功能
是的,你几乎就在那里。

import re
new_list = sorted(l, key=lambda s: re.sub('[aioue]', '', s))