我需要使用字符比较对字符串列表进行排序,从倒数第二个元素开始向下移动到字符串的开头(对于相等的字符)。所以基本上我需要得到这个
in_ = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']
result = ['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']
# sorted on second to last character in each string
答案 0 :(得分:3)
sort()
函数的键。
a = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']
a.sort(key=lambda x:x[-2])
print(a)
输出:
['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']
答案 1 :(得分:3)
只是添加一些替代Miraj50的答案:您可以使用itemgetter
进行cleaner/faster way。
from operator import itemgetter
in_list = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag']
result = sorted(in_list, key=itemgetter(-2))
print(result)
输出:
['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']