python如何通过与变量名匹配的模式对列表进行排序

python如何通过与变量名匹配的模式对列表进行排序,python,sorting,python-2.7,Python,Sorting,Python 2.7,我有一个文件列表,可以用不同的名称命名,但始终包含文件创建时间的字符串。然而,它并不总是在同一个地方 例如: dir=['test_140815080910_data.p', 'other_test_140815081010_data.p', 'other_test_140815081111_other_data.p'] 如何按#对列表进行排序 谢谢您可以使用re查找10位数的块,并将其用作第一个排序键,后跟字符串本身,例如: import re data=['test_1408150809

我有一个文件列表,可以用不同的名称命名,但始终包含文件创建时间的字符串。然而,它并不总是在同一个地方

例如:

dir=['test_140815080910_data.p',
'other_test_140815081010_data.p',
'other_test_140815081111_other_data.p']
如何按#对列表进行排序


谢谢

您可以使用
re
查找10位数的块,并将其用作第一个排序键,后跟字符串本身,例如:

import re

data=['test_140815080910_data.p',
'other_test_140815081010_data.p',
'other_test_140815081111_other_data.p']

data.sort(key=lambda L: (re.findall('\d{10}', L), L))
# ['test_140815080910_data.p', 'other_test_140815081010_data.p', 'other_test_140815081111_other_data.p']

dir
是一个已定义的名称,不要使用它
import re
dir.sort(key=lambda a: re.findall("(\d{1,})", a)[0])