假设我有字符串列表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]
很好。有用。但是我仍然对解决方案不满意(反向字符串,排序,反向返回)。有没有更好的方法来执行这种排序?
答案 0 :(得分:2)
s = ['az', 'by', 'cy', 'cx']
s.sort(key=lambda x: x[::-1])
您可以将key
传递给sort
,这将用于重新映射每个值。如果您不想就地排序,sorted
也一样。
答案 1 :(得分:1)
也许您想要这样的东西?
>>> s = ['az', 'by', 'cy', 'cx']
>>> s.sort(key=lambda x: x[::-1])
>>> s
['cx', 'by', 'cy', 'az']