python – 如何根据我提供的特定订单进行排序

python – 如何根据我提供的特定订单进行排序,第1张

概述我试图在给定扩展名的目录中对文件进行排序,但提供了我先给出的订单.假设我想要扩展订单 ext_list = [ .bb, .cc , .dd , aa ] 我能想到的唯一方法就是浏览每一个文件   并在每次遇到特定扩展时将它们放在列表中. for subdir, dirs, files in os.walk(directory): if file.endswith( '.bb') -- 我试图在给定扩展名的目录中对文件进行排序,但提供了我先给出的订单.假设我想要扩展订单

ext_List = [ .bb,.cc,.dd,aa ]

我能想到的唯一方法就是浏览每一个文件
  并在每次遇到特定扩展时将它们放在列表中.

for subdir,dirs,files in os.walk(directory):      if file.endswith( '.bb') --> append file     then go to the end of the directory     then loop again     if file.endswith( '.cc')  -->append file     and so on...return sorted_extension_List

然后最后

for file in sorted_extension_List :            print file
解决方法 您可以将sorted()与自定义键一起使用:

import osmy_custom_keymap = {".aa":2,".bb":3,".cc":0,".dd":1}def mycompare(f):    return my_custom_keymap[os.path.splitext(f)[1]]files = ["alfred.bb","butters.dd","charlIE.cc","derkins.aa"]print(sorted(files,key=mycompare))

以上使用mycompare函数作为自定义键比较.在这种情况下,它会提取扩展名,并在my_custom_keymap字典中查找扩展名.

一种非常类似的方式(但更接近您的示例)可以使用列表作为地图:

import osmy_custom_keymap = [".cc",".dd",".aa",".bb"]def mycompare(f):    return my_custom_keymap.index(os.path.splitext(f)[1])files = ["alfred.bb",key=mycompare))
总结

以上是内存溢出为你收集整理的python – 如何根据我提供的特定订单进行排序全部内容,希望文章能够帮你解决python – 如何根据我提供的特定订单进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存