一个基本的排序算法 # -- coding: utf-8 -- import random import time num_list = [] for i in xrange(1,10000):...num_list.append(random.randint(1, 9999)) t = time.time() num_list.sort(lambda x,y:cmp(y,x)) #自己实现cmp函数可以实现自定义的排序器...,本例是逆序 print(time.time() - t) python3实现 #python3 中取消了sort的传参,使用key做为排序依据 #把学号按先按字母正序,再按数字逆序排列,a在b前,9在...使用datetime 创建时间对象 val = datetime.datetime(2014,11,11,12,12,12) #2012-11-11 12:12:12 获取当前时间前三天的时间 nowtime...= datetime.datetime.now() before3Day = nowtime + datetime.timedelta(days=-3) 比较两个时间的前后 print(val 3Day
Python中自带了两个排序函数sort和sorted,用法分别为: sort函数用法 list.sort(cmp=None, key=None, reverse=False) 特点:对list原地排序...参数: cmp——可选参数, 可用于自定义排序规则。 key ——主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。...reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。 自定义排序规则 这里以sorted函数为例,自定义排序规则。...比如给定区间数组s = [[1,6],[2,3],[1,4],[3,5]],数组中的每个元素代表一个区间范围,希望的排序规则:根据区间起始点的大小进行排序,起始点小的排在前面,起始点如果相同,则终止点小的排在前面...python3中的sorted()函数去除了cmp参数,推荐使用key。functools.cmp_to_key() 将 compare函数 转化为 key。
Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,dict),我们可以使用更灵活的...一.List的sort()函数 Python源码builtins.py文件对sort()函数的定义如下 def sort(self, key=None, reverse=False):...3] L.sort(reverse=True) print(L) #[7, 4, 3, 2, 1] 再比如,我们想通过key来实现降序排序,这里用到匿名函数lambda: L = [1, 2, 7,...: L = [-1, 2, -7, 4, 3] L.sort(key=abs) print(L) #[-1, 2, 3, 4, -7] Python3对key的还有另外一种支持,就是通过functools...如果我们想要排序的对象是一个集合,那么用法与列表排序一样: S = {1, 2, 7, 4, 3} S1= sorted(S) print(S1) #[1, 2, 3, 4, 7] 注意这个排序对象是set
前言 Python3开始sorted函数和list.sort函数不再接收cmp作为参数,只使用key参数作为比较关键词,这样处理多属性的比较就比较麻烦。...解决方案 一种有效的解决方案是key参数传入比较函数,返回值是所需比较的多个属性按优先级排列的一个元组。...randint(0,1000) for x in range(20)] sorted(lst,key= lambda x:(x % 5, x)) # 第一比较关键词为除以5的模,第二比较关键词为元素大小 感想 函数返回多个值
有一些是拷的,自己加了一点,大家凑活看吧 #-*- coding:utf-8 -*- import time import datetime #in python is float while in...time.time())) currentstr = '2013-08-21 17:05:01' print time.strptime(currentstr,'%Y-%m-%d %H:%I:%S') ''' python...中时间日期格式化符号: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %...的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示...%Z 当前时区的名称 %% %号本身 ''' ''' python time,datetime,string转换 http://hi.baidu.com/_yuan0518/item/f5bb48c39fad35dcee183bbe
匿名函数不管多复杂. 只能写一行, 且逻辑结束后直接返回数据 3. 返回值和正常的函数一样, 可以是任意数据类型 匿名函数并不是说一定没有名字. 这里前面的变量就是一个函数名....: 可迭代对象 key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数....根据函数运算的结果进行排序 reverse: 是否是倒叙....则返回排序过后的key 和函数组合使用 # 根据字符串长度进行排序 lst = ["鲁班七号", "程咬金", "安琪拉", "阿珂"] # 计算字符串长度 def func(s): return...递归 在函数中调用函数本身,就是递归 def func(): print("我是递归") func() func() 在python中递归的深度最大到998 def foo(n)
算法讲解 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。...首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。...算法代码实现 Python 3 代码实现如下,随机生成20个数,保存到列表变量list1中,通过选择排序法进行排序,然后输出排序结果: from random import randrange import...): list1 = [] while len(list1) < 20: # 范围内随机取20个数值 list1.append(randrange(0, 1000, 3)...() #调用排序函数 Sele_sort() end = datetime.datetime.now() print ('选择排序运行所用时间:',end-start) 代码运行结果如下: ?
排序 >>> z=[11,34,-12,9,8534,12,434] >>> z.sort() >>> z [-12, 9, 11, 12, 34, 434, 8534] sort() 函数用于对原列表进行排序...,如果指定参数,则使用比较函数指定的比较函数。...key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。.../usr/bin/python # 获取列表的第二个元素 def takeSecond(elem): return elem[1] # 列表 random = [(2, 2), (3, 4)..., (4, 1), (1, 3)] # 指定第二个元素排序 random.sort(key=takeSecond) # 输出类别 print ('排序列表:', random)
算法讲解 冒泡排序是一种简单直观的排序算法(算法简单,效率低)。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。...算法代码实现 Python 3 代码实现如下,随机生成20个数,保存到列表变量list1中,通过冒泡排序法进行排序,然后输出排序结果: from random import randrange import...): list1 = [] while len(list1) < 20: # 范围内随机取20个数值 list1.append(randrange(0, 1000, 3)...:') for j in range(1,len(list1)): print(list1[j]) start = datetime.datetime.now() #调用排序函数...Bubble_sort() end = datetime.datetime.now() print ('冒泡排序运行所用时间:',end-start) 代码运行结果如下: ?
参数匿名函数字典排序 函数的参数: 参数类型: 我们经常在看别人的代码中,经常出现def(*args,**kwargs)这样的表现形式; *args tuple(1,) **kwargs...(f,[1,2,3,4,5]) filter(lamdba x:x%2 == 1,[1,2,3,4,5]) sorted函数: sorted(...)...sorted(iterable,cmp=None,key=None,reverse=False) -->new sorted list 对字典进行排序: 按照value进行排序: mm = dict(a...=1,b=10,c=3,d=9) print sorted(mm.iteritems(),key = lamdba d:d[1],reverse = True) #/usr/bin/env python...装饰器 装饰器的作用: 装饰器本质上是一个python函数,它可以让其他工具函数在不需要做任何代码变动的前提下增加额外功能 ,装饰器的返回值也是一个函数对象。
class Alarm(Frame): def init(self, msecs=1000): # default = 1 seco...
函数 >>> def ds(x): return 2 * x + 1 >>> ds(5) 11 >>> lambda x : 2 * x + 1 ... at 0x035C65D0> >>> a = lambda x : 2 * x + 1 #lambda关键字来创建匿名函数 >>> a...(5) 11 >>> def add(x,y): return x + y >>> add(3,4) 7 >>> b = lambda x,y : x + y >>> b(3, 4) 7 >>> list...5, 7, 9] >>> list(filter(lambda x : x % 2, range(10))) [1, 3, 5, 7, 9] >>> list(map(lambda x : x * 2..., range(10))) #map() 会根据提供的函数对指定序列做映射 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地址 func() v1() # v1...} print(info) 2 函数也可以当作参数来进行传递 def func(arg): print(arg) func(1) func([1,2,3,4]) def show()...= func_list[2](1,2) print(v3) 总结: 列表所有方法基本上都是返回None,字符串的所有方法基本上都是返回新值。...3....内置函数 函数分为:自定义函数 和 内置函数 目前python的内置函数分为几大类: 1.强制转换 bool() / int() / str() / list() / dict() /tuple()
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率Python提供了许多内建函数,比如print()。...语法 ---- Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。...这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行 参数传递 ---- 在 python 中,strings, tuples, 和 numbers 是不可更改的对象...可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。...a = 100 # 调用changeme函数b = 89mylist = [1,2,3]cme( 89,mylist )print ("函数外取值: ", mylist)print ("b的值:",b)
Python3冒泡排序 概述 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。...走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 算法原理 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。...i in range(0, 10): random_data.append(random.randint(1, 1000)) return random_data # 冒泡排序...积微速成计划基本功提升") # 生成随机无序数据 random_data = generator() # 打印无序数据 print(random_data) # 插入排序...sorted_data = bubble_sort(random_data) # 打印排序结果 print(sorted_data)
选择排序 概述 选择排序(Selection sort)是一种简单直观的排序算法。...它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。...基本过程 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。...再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 以此类推,直到所有元素均排序完毕。...range(0, 10): random_data.append(random.randint(1, 1000)) return random_data # 选择排序
Python3快速排序 概述 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。...通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。...值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。...key的值A[j],将A[j]和A[i]互换 从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换 重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值...,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。
一、列表排序 1、使用 sorted 函数对容器进行排序 在之前的博客 【Python】数据容器总结 ② ( 数据容器元素排序 | 字符串大小比较 | 字符大小比较 | 长短一样的字符串大小比较 | 长短不一样的字符串大小比较...是要排序的 Python 容器变量 ; key 是一个可选的函数 , 用于指定排序的关键字 ; reverse 是一个可选的布尔值 , 用于指定是否按照逆序排序 ; sorted 函数排序 代码示例...\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py [1, 1, 2, 3, 4, 5, 9] [9, 5, 4, 3...\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py [1, 1, 2, 3, 3, 4, 5,...5, 5, 6, 9] Process finished with exit code 0 3、使用 list.sort 函数对列表进行排序 - 设置排序函数 list.sort 函数 的 key
希尔排序 概述 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminshing Increment Sort),是直接插入排序算法的一种更高效的改进版本。...基本过程 希尔排序属于插入类排序,是将整个有序序列分割成若干小的子序列分别进行插入排序。...排序过程: 先取一个正整数d1排序; 然后取d2排序操作; 直至di=1,即所有记录放进一个组中排序为止。...时间成本 希尔排序是按照不同步长对元素进行插入排序,当刚开始元素很无序的时候,步长最大,所以插入排序的元素个数很少,速度很快; 当元素基本有序了,步长很小,插入排序对于有序的序列效率很高。...所以,希尔排序的时间复杂度会比o(n^2)好一些。
前言 python3中,可以通过datetime、time模块去获取想要的时间戳 获取方式 使用time模块 >>> import time >>> time.time() 获取纳秒时间戳 time.time_ns...() 使用datetime模块 >>> from datetime import datetime >>> datetime.timestamp(datetime.now()) 结语 time — 时间的访问和转换...datetime — 基本日期和时间类型 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
领取专属 10元无门槛券
手把手带您无忧上云