我有一个包含240个数字的列表,所有数字都以无花果和无花果的数字开头。
以下是一个例子:
fig1-24-24-32
fig3-45-32-12
fig2-24-24-31
fig5-24-24-31
fig6-24-24-31
fig4-24-24-31
我想通过无花果名称来命名该列表:
fig1-24-24-32
fig2-24-24-31
fig3-45-32-12
fig4-24-24-31
fig5-24-24-31
fig6-24-24-31
我试过了:
print(glob.glob('fig*[1-241]*'))
UPDATE 在这里找到我的问题的答案: https://stackoverflow.com/a/2669120/6235069答案由@Mark Byers提供
答案 0 :(得分:2)
我在这里假设所有文件都以相同的3个字符的长前缀开头(不一定是'fig'
;不会被考虑在内),而后面跟着数字(一个或多个)直到满足破折号('-'
)。
如果确实如此,您可以使用以下内容:
sorted(my_files, key=lambda x: int(x.split('-')[0][3:]))
请注意,my_files
是一个包含所有文件名( basenames )的列表。
输出:
['fig1-24-24-32',
'fig2-24-24-31',
'fig3-45-32-12',
'fig4-24-24-31',
'fig5-24-24-31',
'fig6-24-24-31']
答案 1 :(得分:0)
以下代码可以帮助您完成工作:
mylist=['fig1-24-24-32',
'fig3-45-32-12',
'fig2-24-24-31',
'fig5-24-24-31',
'fig6-24-24-31',
'fig4-24-24-31']
updated_list=sorted(mylist)
排序将完成您的工作,除非您想对前3个字符进行排序。
updated_list
['fig1-24-24-32',
'fig2-24-24-31',
'fig3-45-32-12',
'fig4-24-24-31',
'fig5-24-24-31',
'fig6-24-24-31']