Python 按倒数第二个字符对字符串列表排序

Python 按倒数第二个字符对字符串列表排序,python,string,list,sorting,Python,String,List,Sorting,我需要使用字符比较对字符串列表进行排序,从倒数第二个元素向下移动到字符串的开头(对于相等的字符)。所以基本上我需要得到这个 in_ = ['message', 'essagem', 'ssageme', 'sagemes', 'agemess', 'gemessa', 'emessag'] result = ['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa'] # sorted on seco

我需要使用字符比较对字符串列表进行排序,从倒数第二个元素向下移动到字符串的开头(对于相等的字符)。所以基本上我需要得到这个

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

这是你想要的吗?如果是,则将倒数第二个字母作为
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']

只是为了给Miraj50的答案添加一些替代品:您也可以使用
itemgetter
在一点时间内完成它

输出:

['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']

我没有看到任何排序。我只注意到“旋转”字符串(可以这么说)。此外:您尝试了什么?
>m=“message”;m[-1]+m[:-1]
也不是旋转,#1保持不变。。。修改字符串的条件不清楚!欢迎来到Stackoverflow,请阅读。特别注意。你在发布一个好的问题上投入的精力越多:一个容易阅读、理解的问题,而且这个问题越容易吸引相关的人,你得到帮助的速度就越快。祝你好运这是两列-两个列表。第一个是未排序的(它是一个左移位列表),所以我需要对它进行排序,第二个是排序的(看看倒数第二个字符)。谢谢-1顺便说一句
['emessag', 'essagem', 'sagemes', 'message', 'ssageme', 'agemess', 'gemessa']