【问题标题】:Sorting a list by the last character按最后一个字符对列表进行排序
【发布时间】:2018-05-16 17:51:01
【问题描述】:

我正在尝试创建一个按最后一个字符排序列表的程序。

["Apple", "Mellon", "Banana"]

这是我的清单,我需要将它们排列成这样。

["Banana", "Apple", "Mellon"]

【问题讨论】:

  • 那么到目前为止你尝试过什么?

标签: python


【解决方案1】:

您可以使用函数进行排序,这里我们使用 lambda 函数查看列表中字符串的最后一个索引。

lst = ["Apple", "Mellon", "Banana"]
sorted(lst, key=lambda x: x[-1])

['香蕉'、'苹果'、'梅隆']


无需复制列表即可应用.sort()。这是一种更节省内存的方法。

lst.sort(key=lambda x: x[-1])
print(lst)

['香蕉'、'苹果'、'梅隆']

【讨论】:

  • sorted(lst) 创建一个新列表。 lst.sort() 对现有的就地排序。我相信 OP 想要第二种口味。
  • 或使用operator.itemgetteritemgetter(-1)
【解决方案2】:

您可以通过为key 属性传递lambda 表达式来使用sort 方法。

此方法不返回任何值,但它从原始列表中改变。

l = ["Apple", "Mellon", "Banana"]
l.sort(key = lambda item: item[-1])

输出

['Banana', 'Apple', 'Mellon']

【讨论】:

    猜你喜欢
    • 2015-09-27
    • 2015-10-30
    • 2019-01-18
    • 2012-07-03
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多