python sorted三个例子

# 例1. 按照元素出现的次数来排序
seq = [2,4,3,1,2,2,3]

# 按次数排序
seq2 = sorted(seq, key=lambda x:seq.count(x))
print(seq2) # [4, 1, 3, 3, 2, 2, 2]

# 改进:第一优先按次数,第二优先按值
seq3 = sorted(seq, key=lambda x:(seq.count(x), x))
print(seq3) # [1, 4, 3, 3, 2, 2, 2]

'''
原理:
    先比较元组的第一个值,值小的在前。(注意:False < True)
    如果相等就比较元组的下一个值,以此类推。
'''
#例2.这是一个字符串排序,排序规则:小写<大写<奇数<偶数
s = 'asdf234GDSdsf23'

s2 = "".join(sorted(s, key=lambda x: (x.isdigit(),x.isdigit() and int(x) % 2 == 0,x.isupper(),x)))
print(s2) # addffssDGS33224
#例3. 一道面试题:
list1 = [7, -8, 5, 4, 0, -2, -5]
#要求1.正数在前负数在后 2.正数从小到大 3.负数从大到小

list2 = sorted(list1,key=lambda x:(x<0, abs(x)))
print(list2) # [0,4,5,7,-2,-5,-8]
时间: 2024-09-12 23:03:47

python sorted三个例子的相关文章

Python入门(三)——list和tuple,条件判断和循环,dict和set

Python入门(三)--list和tuple,条件判断和循环,dict和set 好的,我们继续来学习python,这次我们讲容器,也就是list,我们可以这样表示 一.list student = ["zhangsan", "lisi", "wangwu"] print student print "长度为:",len(student) 这样我们可以看下输出的内容 我们可以看到打印的内容,以及他的长度是3,也就是有三个子集,

学习Python的三种境界

前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人憔悴.'此第二境也.'众里寻他千百度,蓦然回首,那人却在灯火阑珊处'.此第三境也.我从入门python到现在也没有多少时间,所以写如此大的一个题目必定会引发各种批判,当然我没有想造一个大新闻,只是想根据自己的学习历程做一个简单的总结,同时将这三个阶段对应的一些好的书籍简单介绍介绍. 正文 Python的用途十

Python selenium 三种等待方式详解(必会)_python

很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待.殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼飞过,欺负哥速度慢,哥不跟你玩了,抛个异常撂挑子了. 那么怎么才能照顾到凹凸曼缓慢的加载速度呢?只有一个办法,那就是等喽.说到等,又有三种等法,且听博主一一道来: 1. 强制等待

Python基础三(选择,循环)

序 首先我们知道程序的执行有三种结构:顺序.选择.循环三种结构,而为了方便我们书写和多次利用我们就需要把一段代码封装器来,这就是方法.今天我就说的是程序的基本结构的格式和方法. 注:所有的程序都可以通过基本结构(顺序,选择,循环)书写出来. 流程结构 顺序结构语句 1:什么是流程控制语句 流程控制语句:可以控制程序的执行流程. 2:流程控制语句的分类 顺序结构 选择结构 循环结构 3:执行流程: 从上往下,依次执行. 选择结构语句 if 语法 if-else的使用格式 if 条件: 满足条件时要

从三个例子浅谈seo的最高境界为关键词的自主创建

相信很多做优化的人每天都在关心站点的主关键词排名,同时还要尽可能的寻找更好的长尾关键词来获得流量.而这些都是每一个成功的优化人员所要经历的过程,随着经验的慢慢累积,我们往往会找到很多优化的捷径.比方说,我们可以利用同行业的竞争对手来获得长尾关键词,或者借助一些优化工具.但是笔者认为优化的最高境界并不说我们的关键词.长尾关键词有了多好的排名,获得多少的流量.最高境界是关键词的自主创建,今天笔者就通过借助三个成功的例子来浅谈seo的最高境界为自主创建关键词. 关键词一:美丽说   百度指数:8363

Python Socket通讯程序例子

python中内置的socket模块使得网络编程更加简单化,下面就通过两个小小脚本来了解客户端如何与服务器端建立socket. 客户端代码: #clietn.py if __name__ == '__main__':  #判断是否调用自己本身,如果不是则__name__为脚本名称 import socket  #导入我们所需的socket模块sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  #第一步是创建socket对象.调用so

Python自动单元测试的例子

Python unittest模块的相关用法 待测源码类:widget.py #!/usr/bin/env python class Widget: def __init__(self, size = (40, 40)): self._size = size def getSize(self): return self._size def resize(self, width, height): if width == 0 or height < 0: raise ValueError, "

python sorted排序

Python不仅提供了list.sort()方法来实现列表的排序,而且提供了内建sorted()函数来实现对复杂列表的排序以及按照字典的key和value进行排序. sorted函数原型 sorted(data, cmp=None, key=None, reverse=False) #data为数据 #cmp和key均为比较函数 #reverse为排序方向,True为倒序,False为正序 基本用法 对于列表,直接进行排序 >>> sorted([5, 2, 3, 1, 4]) [1,

python文件遍历的例子

在linux系统下遍历文件不算是新鲜功能,如果给出一个目录,要根据这个目录的结构去做某些操作,这个就要到遍历了,谈到遍历就不能不说递归,因为遍历是递归的典型应用场景,那什么是递归?其实递归就是定义的函数又调用了自己,比如列出指定目录下的所有文件,如果这个目录下除了文件还有目录,就就需要再进入这个子目录里,依次类推直到没有目录了结束,递归比较抽象,我们直接上例子说明: #!/usr/mport os   import os   def Rec(path):   all_files = os.lis