python - 按字符串反向排序列表
问题描述
假设我有字符串列表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]
这可以。有用。但我仍然对解决方案不满意(反向字符串、排序、反向)。有没有更好的方法来执行这种排序?
解决方案
s = ['az', 'by', 'cy', 'cx']
s.sort(key=lambda x: x[::-1])
您可以传递一个key
将sort
用于重新映射每个值的对象。sorted
如果您不想就地排序,也是如此。
推荐阅读
- bash - sed $ 不匹配双引号的行首
- sql - 如何在访问权限中编写查询以根据其他 2 列的值更新列?
- apache-spark - 对于“迭代算法”,转换为 RDD 然后再转换回 Dataframe 有什么好处
- flutter - 无法在 Flutter 中创建下拉按钮
- r - R:父数据框中的唯一 ID,但子数据框中的每个 ID 有多个。如何将来自父级的数据分配给每个匹配的子条目?
- android - Custom Recycler View Adapter - How to exclude certain items?
- html - 使用 FontAwesome 图标替换 png 作为源
- javascript - 如何将 HTML 设计仅保留到标题而不是整个页面
- ruby-on-rails - 当我们在 Ruby 和 Rails 的一个类中定义了一些常量时,我们能保证能够在另一个类中访问它吗?
- django - Django 3 ModelChoiceField 保持为空