Python:如何按字符串的最后一个字符对列表进行排序

Chr*_*ges 8 python

我正在尝试编写一个程序,根据项目中的最后一个字符对字符串列表进行排序.

["Tiger 6", "Shark 4", "Cyborg 8"] 我的列表是如何导入的,但我需要根据最后的数字将它们按数字顺序排列.

提前致谢!

Avi*_*Raj 13

我正在尝试编写一个程序,根据项目中的最后一个字符对字符串列表进行排序.

>>> s = ["Tiger 6", "Shark 4", "Cyborg 8"]
>>> sorted(s, key=lambda x: int(x[-1]))
['Shark 4', 'Tiger 6', 'Cyborg 8']
Run Code Online (Sandbox Code Playgroud)

如果最后有多个数字,请尝试此操作.

>>> import re
>>> sorted(s, key=lambda x: int(re.search(r'\d+$',x).group()))
['Shark 4', 'Tiger 6', 'Cyborg 8']
Run Code Online (Sandbox Code Playgroud)

re.search(r'\d+$',x).group() 无论先前的空间如何,都有助于获取最后出现的数字.

  • lambda 用于创建匿名函数。 (3认同)

小智 5

def last_letter(word):
    return word[::-1]

mylst = ["Tiger 6", "Shark 4", "Cyborg 8"]
sorted(mylst, key=last_letter)
Run Code Online (Sandbox Code Playgroud)