根据每个字符串项中的最后一个数字在python中对列表进行排序
我有一个python列表,其形式如下:根据每个字符串项中的最后一个数字在python中对列表进行排序,python,regex,string,sorting,numbers,Python,Regex,String,Sorting,Numbers,我有一个python列表,其形式如下: myList = ['r0x94', 'r0x21', 'r0x51'] 我想根据列表中每个字符串项的最后一个数字对其进行排序,以便: sorted_myList = ['r0x21', 'r0x51', 'r0x94'] 最后一个数字不是十六进制,而是十进制。怎么做?myList.sortStarting 0x是十六进制的值吗?不,结束值是十进制的,不是十六进制的。嗯,我不认为这比sortedmy_list好…它更好,用['r0x94','r0x21
myList = ['r0x94', 'r0x21', 'r0x51']
我想根据列表中每个字符串项的最后一个数字对其进行排序,以便:
sorted_myList = ['r0x21', 'r0x51', 'r0x94']
最后一个数字不是十六进制,而是十进制。怎么做?myList.sortStarting 0x是十六进制的值吗?不,结束值是十进制的,不是十六进制的。嗯,我不认为这比sortedmy_list好…它更好,用['r0x94','r0x21','r0x51','r0x100','r0x10']@MartinEvans用['r0x1A']试试看。@StefanPochmann问题作者从未说过这是十六进制还是非十六进制,他只是说出了字符串中的最后一个数字。所以我投票决定结束这个问题好吧,我要说的是答案。但这确实是我对Martin的回应,我的观点是,如果我们假设OP的例子不具有代表性,那么在考虑改变大小之前,我会先考虑hex。
>>> my_list = ['r0x94', 'r0x21', 'r0x51']
>>> sorted(my_list, key=lambda x: int(x.rpartition('x')[-1]))
['r0x21', 'r0x51', 'r0x94']