Python 如何对特定字符串索引中的字符串数组进行排序

Python 如何对特定字符串索引中的字符串数组进行排序,python,arrays,string,list,Python,Arrays,String,List,所以。。实际上,我有一个列表,上面有多个字符串。在这里,我想在特定的字符串索引中对其进行排序: lists = ['AELIA4560005253120', 'KIFLA5000005760000'] 苏。。在列表中,有名称(其中包含大写字母)、代码(名称后3位数字)和密码(前一个代码后10位数字)。。我的问题是,我可以按特定的字符串索引对列表进行排序吗?我想按代码对列表进行排序(名称后有3位数字) 所以我的预期结果是,KIFLA排在第一,AELIA排在第二,因为KIFLA的代码是500,AE

所以。。实际上,我有一个列表,上面有多个字符串。在这里,我想在特定的字符串索引中对其进行排序:

lists = ['AELIA4560005253120', 'KIFLA5000005760000']
苏。。在列表中,有名称(其中包含大写字母)、代码(名称后3位数字)和密码(前一个代码后10位数字)。。我的问题是,我可以按特定的字符串索引对列表进行排序吗?我想按代码对列表进行排序(名称后有3位数字)

所以我的预期结果是,KIFLA排在第一,AELIA排在第二,因为KIFLA的代码是500,AELIA的代码是456

有人能帮我吗?谢谢试试这个:

lists = ['AELIA4560005253120', 'KIFLA5000005760000']

res = sorted(lists, key=lambda x: int(x[5:8]) , reverse = True)
#['KIFLA5000005760000', 'AELIA4560005253120']
试试这个:

lists = ['AELIA4560005253120', 'KIFLA5000005760000']

res = sorted(lists, key=lambda x: int(x[5:8]) , reverse = True)
#['KIFLA5000005760000', 'AELIA4560005253120']

假设名称的长度可变,则可以使用:

import re

lists = ['AELIA4560005253120', 'KIFLA5000005760000']

lists_sort = sorted(lists, key = lambda x: int(re.search(r'\d{3}', x).group(0)), reverse = True)
print(lists_sort)

假设名称的长度可变,则可以使用:

import re

lists = ['AELIA4560005253120', 'KIFLA5000005760000']

lists_sort = sorted(lists, key = lambda x: int(re.search(r'\d{3}', x).group(0)), reverse = True)
print(lists_sort)

名字总是一样长吗?不是。。只有密码的长度是最后一个密码的10位数字。因此,如果名字的长度不是5个字母,那么你接受的答案将被打断。是的,但是由于答案,我可以通过改变索引来临时生成代码,将索引本身反转,代码变成这样。。res=sorted(list,key=lambda x:int(x[-13:-10]),reverse=True)名称的长度是否始终相同?否。。只有密码的长度是最后一个密码的10位数字。因此,如果名字的长度不是5个字母,那么你接受的答案将被打断。是的,但是由于答案,我可以通过改变索引来临时生成代码,将索引本身反转,代码变成这样。。res=sorted(list,key=lambda x:int(x[-13:-10]),reverse=True)您可能希望lambda函数中有int(x[5:8])。您可能希望lambda函数中有int(x[5:8])。我想知道
int(re.search(r'\d{3}',s).group(0))
是否会更容易一些?是的,谢谢您的建议。我已经更新了答案我想知道
int(re.search(r'\d{3}',s).group(0))
是否会更容易些?是的,谢谢你的建议。我已经更新了答案