1、list中的sort()方法: 

def sort(self, key=None, reverse=False): # real signature unknown; restored from __doc__
""" L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE* """
pass
'''
key:是排序的条件,可以是:key=int,key=len, key=lambda..
reverse:表示是否反序,默认从小到大,默认为Flase
'''
##一个list调用sort方法后,对原list进行排序
## 1、最简单的排序
l = [5,2,3,1,4 ]
l .sort()
print(l) ##输出:[1, 2, 3, 4, 5] l.sort(reverse=True)#反序
print(l) ##输出:[5, 4, 3, 2, 1] ##2、字符串排序
StrList = ['fb', 'bx', 'csw', 'qb', 'qqa', 'eeeed']
2.1 一般字典序排列,但是大写在前,小写在后!!
StrList.sort()
print(StrList) ##字符串列表是按照第一个字符的大小排序的
##输出:['Fast', 'Smooth', 'fast', 'is', 'is', 'smooth'] 2.2忽略大小写,按abcd顺序
StrList.sort(key=str.lower)
print(StrList) ##输出:['Fast', 'fast', 'is', 'is', 'Smooth', 'smooth'] 2.3按照字符串长度排序
StrList.sort(key=len)
print(StrList)##输出:['is', 'is', 'fast', 'Fast', 'Smooth', 'smooth'] StrList.sort(key=len, reverse=True)#反序
print(StrList) ##输出:['Smooth', 'smooth', 'fast', 'Fast', 'is', 'is']

其他:

  1、sort()配合lambda()进行排序:

 l = [[2, 2, 3], [1, 4, 5], [5, 4, 9]]
l.sort(lambda x:x[0]) ##按照第一个元素进行排序
print(l) ##输出:[[1, 4, 5], [2, 2, 3], [5, 4, 9]]
'''
匿名函数的x,表示的是l列表中的每一个成员元素 x[0] :表示列表里面列表的第一个成员元素
'''

  2、也可以对对对象的属性进行排序

2、sorted()方法

 def sorted(*args, **kwargs): # real signature unknown
"""
Return a new list containing all items from the iterable in ascending order. A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
"""
'''
sorted(L)返回一个排序后的L,不改变原始的L;
  L.sort()是对原始的L进行操作,调用后原始的L会改变,没有返回值。【所以a = a.sort()是错的啦!a = sorted(a)才对!
sorted()适用于任何可迭代容器,list.sort()仅支持list(本身就是list的一个方法) '''

 1、sort配合lambda进行排序

 2、sort配合lambda进行排序

  若是可迭代序列的成员元素是对象,那么同样可以用sorted方法进行排序: 对象.成员变量

 >>> class 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),
]
>>> sorted(student_objects, key=lambda student: student.age) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

3、如果第一个排序条件相同,则按照第二个条件排序

a = [[2,3],[4,1],(2,8),(2,1),(3,4)]
b = sorted(a,key=lambda x: (x[0], -x[1]))
print(b)
'''
b = sorted(a,key=lambda x:(条件a,条件b))
'''

4、字典排序:

 ## 面试很可能会遇到
dic = {'a':2,'b':1} 1、按照key排序
d = sorted(dic ,key = lambda k:k[0]) 2、按照values排序
e = sorted(dic , key = lambda k:k[1])

5、字典的key-values互换

 dic = { 'a':1, 'b':2,'c':3}
# 字典生成式
{values:key for key,values in dic.items()} ## 记住dic.items()变成了items[('a',1),('b',1)]

python--sort()和sorted()高级排序的更多相关文章

  1. 【转载】 python sort、sorted高级排序技巧

    这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容,需要的朋友可以参考下 Python list内置so ...

  2. python sort、sorted高级排序技巧(转)

    add by zhj: 没找到原文.可以按多个维度进行排序,而且可以指定他们的排序方向,如果维度都是数字,排序比较容易,用+/-号就可以 指定排序方向.否则,就调用多次sorted进行排序了,而且要按 ...

  3. python sort、sorted高级排序技巧

    文章转载自:脚本之家 Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的 ...

  4. 【Python】 sort、sorted高级排序技巧

    文章转载自:脚本之家 这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容,需要的朋友可以参考下 Pyth ...

  5. sort、sorted高级排序-Python3.7 And 算法<七>

    1.sort(*, key=None, reverse=False) sort()接受两个参数,这两个参数只能通过关键字(关键字参数)传递. 参数key:带一个参数的函数(排序时,会依次传入列表的每一 ...

  6. python sort 和sorted排序

    当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...

  7. Python中排序函数sorted和排序方法sort的异同点对比分析

    Python中对序列进行排序有两种方法,一种是使用python内置的全局sorted函数,另一种是使用序列内置的sort方法. 一. 两者相同点 在支持sort方法的序列中都可以对序列进行排序: 二者 ...

  8. python sort和sorted的区别以及使用方法

    iteralbe指的是能够一次返回它的一个成员的对象.iterable主要包括3类: 第一类是所有的序列类型,比如list(列表).str(字符串).tuple(元组). 第二类是一些非序列类型,比如 ...

  9. python sort和sorted函数

    sort 与 sorted 区别: sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作. list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 ...

  10. python sort与sorted使用笔记

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列 一,最简单的排序 1.使用sort排序 my_list = [3 ...

随机推荐

  1. fetch与XHR的区别与优势

    Fetch API更加现代 XHR 和 Fetch API 最显著的区别就是调用方式不同.这一点大家应该都知道吧. 举个例子,下面两端代码完成的是同一功能: // 用 XHR 发起一个GET请求 va ...

  2. 个人信息——头像更换(拍照或相册上传)~ 微信小程序

    微信小程序中 在用户信息中关于用户头像更换(拍照或相册上传)功能实现. 图像点击触发事件: <image src='{{personImage}}' bindtap='changeAvatar' ...

  3. python_vlc 播放http流

    由于工作需要,项目功能测试用到python调用vlc,用于播放一些直播流,各种尝试后终于可以了,其实蛮简单的,就是由于没有参考自己折腾挺浪费时间的,所以把结果贴出来给需要用到的人. 准备工作: 1.首 ...

  4. 运用python发邮件

    1.网上有许多发送邮件的代码,运行了几次都不成功(使用python3),转用Python2之后,发送成功 2.代码样例: 参考教程:http://www.runoob.com/python/pytho ...

  5. selenium操作日历控件

    日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用js去掉 ...

  6. 正则表达式,grep,sed,

    答案详见:http://www.cnblogs.com/linhaifeng/p/6596660.html 作业一:整理正则表达式博客 ^ # 行首定位 $ # 行尾定位 . # 匹配除换行符以外的任 ...

  7. Django content_type 简介及其应用

    在网上看到 django ORM 有一个 content_type 字段表的应用,这张表不是我们通过建立model类添加的,而是django自动帮我们生成的,具体的作用先简单的举个例子给大家介绍一下. ...

  8. oracle入门之对表数据查询(一)

    此文中用到的表是Scott用户中自带的三张表: 基本select语句 基本语法: select [distinct] *|{columnl,column2,column3..} from table ...

  9. 使用bitsadmin.exe 下载文件,配合bcn.bat玩出更多的花样~~

    bitsadmin的简单介绍与基本用法: bitsadmin.exe 可以用来在windows 命令行下下载文件.bitsadmin是windows 后台智能传输服务的一个工具,windows 的自动 ...

  10. L362 When to Bring up Salary During the Job Interview Process

    Money is an awkward topic of conversation for many professionals—even more so when you’re busy tryin ...