最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

用数字对python字符串列表进行排序

SEO心得admin37浏览0评论
本文介绍了用数字对python字符串列表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个名为 filelist

In []: filelist Out []: ['C:\\Mon20412\\P-2NODE-RAID6-1BLACK-32k-100-segmented.xlsx', 'C:\\Mon25312\\P-2NODE-RAID6-13RED-32k-100-segmented.xlsx', 'C:\\Mon20362\\P-2NODE-RAID6-2GREEN-32k-100-segmented.xlsx']

我想通过粗体位置的数值对文件列表进行排序

I want to sort this filelist by the numerical value that is in the bolded position

C:\ Mon20412 \ P-2NODE-RAID6- 1 BLACK-32k-100-segmented.xlsx C:\ Mon25312 \ P-2NODE-RAID6- 13 RED-32k-100-segmented.xlsx C:\ Mon20362 \ P-2NODE-RAID6- 2 GREEN-32k-100-segmented.xlsx

C:\Mon20412\P-2NODE-RAID6-1BLACK-32k-100-segmented.xlsx C:\Mon25312\P-2NODE-RAID6-13RED-32k-100-segmented.xlsx C:\Mon20362\P-2NODE-RAID6-2GREEN-32k-100-segmented.xlsx

因此在此示例中,输出将为

So in this example, the output would be

Out []: ['C:\\Mon20412\\P-2NODE-RAID6-1BLACK-32k-100-segmented.xlsx', 'C:\\Mon20362\\P-2NODE-RAID6-2GREEN-32k-100-segmented.xlsx' 'C:\\Mon25312\\P-2NODE-RAID6-13RED-32k-100-segmented.xlsx']

谢谢!

推荐答案

找到一种好的可靠方法来提取所需的号码.然后使用key参数按该数字排序.对于您的输入来说,这似乎足够可靠,但是效率不高.

Find a good, reliable way to extract the number that you want. Then sort by that number, using the key argument. This seems to be reliable enough for your input, but it's not efficient.

a = ['C:\\Mon20412\\P-2NODE-RAID6-1BLACK-32k-100-segmented.xlsx', 'C:\\Mon25312\\P-2NODE-RAID6-13RED-32k-100-segmented.xlsx', 'C:\\Mon20362\\P-2NODE-RAID6-2GREEN-32k-100-segmented.xlsx'] def k(a): x = a.split("\\")[-1].split("-")[3] y = filter(lambda x: x in "0123456789", x) return int("".join(list(y))) print(sorted(a, key=k))

输出:

['C:\\Mon20412\\P-2NODE-RAID6-1BLACK-32k-100-segmented.xlsx', 'C:\\Mon20362\\P-2NODE-RAID6-2GREEN-32k-100-segmented.xlsx', 'C:\\Mon25312\\P-2NODE-RAID6-13RED-32k-100-segmented.xlsx']
发布评论

评论列表(0)

  1. 暂无评论