博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 排序
阅读量:6819 次
发布时间:2019-06-26

本文共 2463 字,大约阅读时间需要 8 分钟。

转载自:http://wiki.python.org/moin/HowTo/Sorting
Original version by Andrew Dalke with a major update by Raymond Hettinger原始版本是Andrew Dalke,然后更新的是Raymond Hettinger
There are many ways to use them to sort data and there doesn't appear to be a single, central place in the various manuals describing them, so I'll do so here.有许多方法对数据排序,但在各种手册中没有一个单一的,集中的地方描述。所以我将来做这件事。
Sorting Basics基本排序A simple ascending sort is very easy -- just call the sorted() function. It returns a new sorted list: 一个简单的升序排序很简单 -- 调用 sorted() 函数。它返回一个排好序的列表 You can also use the list.sort() method of a list. It modifies the list in-place (and returns None to avoid confusion). Usually it's less convenient than sorted() - but if you don't need the original list, it's slightly more efficient. 你也可以就地使用list自带的list.sort()(返回None为了避免混乱),通常它没有sorted()方便。--但是如果你不需要原始的list.他稍微更加高效
a = [5, 2, 3, 1, 4]a_asc = sorted(a)print a_asca_desc = sorted(a, reverse=True)print a_desc运行结果:C:\Python27\python.exe F:/python/pysort.py[1, 2, 3, 4, 5][5, 4, 3, 2, 1] a = [5, 2, 3, 1, 4] a.sort() print a a = [5, 2, 3, 1, 4] q = a.sort(reverse=True) print a print q 运行结果: C:\Python27\python.exe F:/python/pysort.py [1, 2, 3, 4, 5] [5, 4, 3, 2, 1] None
Another difference is that the list.sort() method is only defined for lists. In contrast, the sorted() function accepts any iterable. 有一点不同,list.sort()适用于lists,于此相反,而sorted()适用于所有iterable

 

__author__ = 'dell'from operator import itemgetter, attrgetterb = sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})print bsen = 'this is a test string from andrew'.split()res = sorted(sen, key=str.lower)print resclass Student:    def __init__(self, name, grade, age):        self.name = name        self.grade = grade        self.age = age    def __repr__(self):        return repr((self.name, self.grade, self.age))student_objects = [Student('john', 'A', 15), Student('jane', 'B', 12), Student('dave', 'B', 10)]res_std = sorted(student_objects, key= lambda student: student.age)print res_stdres_std = sorted(student_objects, key=attrgetter('age'))print res_stdres_std = sorted(student_objects, key=attrgetter('grade', 'age'))print res_stdprint '---------------------------------------------------------------'student_tuples = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]stus = sorted(student_tuples, key= lambda student: student[2])print stusstus = sorted(student_tuples, key=itemgetter(2))print stusstus = sorted(student_tuples, key=itemgetter(1, 2))print stus

 

 

 

 

你可能感兴趣的文章
Markdown语法和基本使用
查看>>
全栈 - 13 ggplot2 在 R 中进行可视化
查看>>
BCH简报:稳步开发、市场回调、涌现各种创新应用
查看>>
刚接触一个 Laravel 项目,你可以从这些地方入手
查看>>
Laravel Shop 电商项目正式开源~
查看>>
一分钟让你明白标签云
查看>>
想在vue、react中用es6,先知道这些必会的才行
查看>>
AJAX多级下拉联动【JSON方式】
查看>>
SQL更新错误JDBC batch update constraint [null]
查看>>
看图轻松理解数据结构与算法系列(希尔排序)
查看>>
【需求解决系列之一】移动卡片实现答题功能
查看>>
最全的Android 颜色透明度
查看>>
Spring Boot中使用WebSocket总结(三):使用消息队列实现分布式WebSocket
查看>>
世界上最贵的几幅画(纯属扯淡)
查看>>
iOS 面向协议封装全屏旋转功能
查看>>
js难点精解-----原型和原型链的关系和应用
查看>>
Framework 源码解析知识梳理(6) ContentProvider 源码解析
查看>>
函数式编程 - 玩转高阶回调函数
查看>>
从零实现Vue的组件库(五)- Breadcrumb 实现
查看>>
狙杀页面卡顿 —— Performance 指北
查看>>