【发布时间】:2018-05-16 17:51:01
【问题描述】:
我正在尝试创建一个按最后一个字符排序列表的程序。
["Apple", "Mellon", "Banana"]
这是我的清单,我需要将它们排列成这样。
["Banana", "Apple", "Mellon"]
【问题讨论】:
-
那么到目前为止你尝试过什么?
标签: python
我正在尝试创建一个按最后一个字符排序列表的程序。
["Apple", "Mellon", "Banana"]
这是我的清单,我需要将它们排列成这样。
["Banana", "Apple", "Mellon"]
【问题讨论】:
标签: python
您可以使用函数进行排序,这里我们使用 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.itemgetter 和itemgetter(-1)。
您可以通过为key 属性传递lambda 表达式来使用sort 方法。
此方法不返回任何值,但它从原始列表中改变。
l = ["Apple", "Mellon", "Banana"]
l.sort(key = lambda item: item[-1])
输出
['Banana', 'Apple', 'Mellon']
【讨论】: