如何编写程序按最后一个字符对字符串列表进行排序?
按字符串最后一个字符排序列表的实现
Hey there! 你想要实现按列表中每个字符串的最后一个字符排序,输入是 ["Apple", "Mellon", "Banana"],期望得到 ["Banana", "Apple", "Mellon"] 的结果对吧?这在Python里用内置的排序工具就能轻松实现,不用写复杂的逻辑。
核心实现代码
直接利用sorted()函数的key参数,指定排序的依据为每个字符串的最后一个字符:
original_list = ["Apple", "Mellon", "Banana"] sorted_list = sorted(original_list, key=lambda x: x[-1]) print(sorted_list) # 输出: ["Banana", "Apple", "Mellon"]
代码解释
sorted()是Python内置的排序函数,它会返回一个新的排序后的列表,不会改动原列表。如果你想直接修改原列表,可以用列表的.sort()方法,用法几乎一样:original_list = ["Apple", "Mellon", "Banana"] original_list.sort(key=lambda x: x[-1]) print(original_list) # 原列表已被修改为目标结果lambda x: x[-1]是一个匿名函数,它的作用就是提取每个字符串的最后一个字符,作为排序的“关键字”。我们对应你的例子验证一下:- "Apple"的最后一个字符是
e - "Mellon"的最后一个字符是
n - "Banana"的最后一个字符是
a
- "Apple"的最后一个字符是
- 按照字母的自然顺序,
a<e<n,所以排序后的顺序正好是你想要的Banana→Apple→Mellon。
额外小提示
如果你的列表里有大小写混合的字符串(比如"apple"和"Apple"),想要忽略大小写排序的话,可以把提取的字符转成小写:
sorted_list = sorted(original_list, key=lambda x: x[-1].lower())
这样不管最后一个字符是大写还是小写,都会被视为相同的排序依据。
内容的提问来源于stack exchange,提问作者berty qwerty
相关产品推荐
相关产品推荐

