In [32]: alphabet = "bafmxpzv"
In [33]: a = ['af', 'ax', 'am', 'ab', 'zvpmf']
现在让我们根据字母在其中出现的位置进行排序alphabet
:
In [34]: sorted(a, key=lambda word: [alphabet.index(c) for c in word])
Out[34]: ['ab', 'af', 'am', 'ax', 'zvpmf']
上面按正确的顺序排序。
sorted
支持广泛的自定义排序。该sorted
函数有三个可选参数cmp
,key
以及reverse
:
cmp
适用于复杂的排序任务。如果指定,cmp
应该是一个带有两个参数的函数。它应返回负数,零数或正数,具体取决于第一个自变量是否小于,等于或大于第二个自变量。对于这种情况,cmp
是矫kill过正。
key
,如果经过了精化,应该是一个带有一个参数并返回python本身知道如何排序的函数。在这种情况下,key返回字母中每个单词字符的索引列表。
在这种情况下,key
返回中的字母索引alphabet
。