首页 > 解决方案 > 按字符串反向排序列表

问题描述

假设我有字符串列表s = ['az', 'by', 'cy', 'cx']

我想按每个字符串的倒序对该列表进行排序。所需排序:s = ['cx', 'by', 'cy', 'az']. (注:我不是在找s.sort(reverse=True)

实现这一目标的一种方法是:

s = ['az', 'by', 'cy', 'cx']
reversed_s = [val[::-1] for val in s]
reversed_s.sort()
s = [val[::-1] for val in reversed_s]

这可以。有用。但我仍然对解决方案不满意(反向字符串、排序、反向)。有没有更好的方法来执行这种排序?

标签: pythonlist

解决方案


s = ['az', 'by', 'cy', 'cx']
s.sort(key=lambda x: x[::-1])

您可以传递一个keysort用于重新映射每个值的对象。sorted如果您不想就地排序,也是如此。


推荐阅读