用于多字段排序的python关键函数

orderb的Python项目详细描述


python键函数,用于按方式按sql顺序进行多字段排序

https://img.shields.io/pypi/v/orderby.svg

用于内置的sorted()键函数

还支持list.sort()执行就地排序

实现使用operator.itemgetter()+一些内部帮助程序类来允许降序排序。

到目前为止,这已经在字典列表中测试和使用。添加对命名元组和其他元组的支持将 可能(使用operator.attrgetter())。

用法

  • 类似sql的:orderby('foo ASC, bar DESC')
  • 链接:asc('foo').desc('bar')用法
  • 一次多个字段:asc('foo', 'bar')

示例

orderby()string语法:

>>>fromorderbyimportorderby>>>importjson>>>files=[...{'size':1234,'path':'foo/bar.txt'},...{'size':0,'path':'/dev/null'},...{'size':1234,'path':'foo/abc.bin'},...]>>>print(json.dumps(sorted(files,key=orderby('size DESC, path')),indent=2))[{"size":1234,"path":"foo/abc.bin"},{"size":1234,"path":"foo/bar.txt"},{"size":0,"path":"/dev/null"}]

链接asc()desc()用法:

>>>fromorderbyimportasc,desc>>>print(json.dumps(sorted(files,key=desc('size').asc('path')),indent=2))[{"size":1234,"path":"foo/abc.bin"},{"size":1234,"path":"foo/bar.txt"},{"size":0,"path":"/dev/null"}]

列表的就地排序:

>>>files.sort(key=desc('path'))>>>print(json.dumps(files,indent=2))[{"size":1234,"path":"foo/bar.txt"},{"size":1234,"path":"foo/abc.bin"},{"size":0,"path":"/dev/null"}]>>>files.sort(key=desc('size').asc('path'))>>>print(json.dumps(files,indent=2))[{"size":1234,"path":"foo/abc.bin"},{"size":1234,"path":"foo/bar.txt"},{"size":0,"path":"/dev/null"}]

内部构件

稍后在此处解释…

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
tomcat java。lang.NoClassDefFoundError:无法初始化类com。太阳代理$Proxy8   java Spring引导CommandLineRunner异常处理建议   java文件。getParentFile()。mkdirs();在osx中创建重复文件夹   java Lucene IndexWriter线程安全   HashMapJava加速了哈希映射的创建   java执行器服务从Servlet线程启动   guava在Java中创建异构列表   泛型Java将比较器传递给构造函数   在Java中生成公钥和私钥的加密会生成类似的所有密钥,包括私钥和公钥   java ResourceLocation抛出FileNotFoundException Minecraft Forge 1.12.2   java使用动态键序列化JSON响应   在空映射上调用方法时发生java NullPointerException   java在Selenium中选择不同行中的按钮   优化在Java中,降低时间和空间复杂性的最佳方法是什么?   java表。setValueAt(…)不为JTable工作   javajsonrpc与JSON   ant从java编译中排除类的特定方法