您好,我的文件夹中有 json 文件列表。['user_sample_v001.json', 'user_sample_v002.json', 'user_sample_v105.json']所以Python方式我正在尝试获取最新版本>>> for item in lst:...  print os.path.splitext(item.split("_")[-1])[0]v001v002v105给我喜欢这个的数字列表:>>> for version in versions:...  number = ""...  for num in version:...   if num.isdigit():...    number = "{0}{1}".format(number, num)...  nums.append(number)... >>> nums['001', '002', '105']然后我可以做 max(nums) 给我'105'然后我可以这样检查:for user_sample in lst:    if max_num in user_sample:        print user_sample这给了我“user_sample_v105.json”,它可以进一步优化准确性和性能吗?
                    
                    
                1 回答
 
                    
                    
                            偶然的你
                            
                                
                            
                        
                        
                                                
                    TA贡献1841条经验 获得超3个赞
您可以将max()函数与自定义key=函数一起使用:
import re
lst = ['user_sample_v001.json', 'user_sample_v002.json', 'user_sample_v105.json']
pattern = re.compile(r'_v(\d+)\.json')
m = max(lst, key=lambda k: int(pattern.search(k).group(1)))
print(m)
印刷:
user_sample_v105.json
添加回答
举报
0/150
	提交
		取消
	