sort

python中的sort和sorted

谁都会走 提交于 2020-02-06 01:02:01
共同点 都有三个参数, cmp用户自定义(指定函数),每个元素都会调用,效率没key高 key带一个参数的函数,用来为每个元素提取比较值 reverse=True 翻转 sort sort作用的对象一般是列表 sort直接排序后就改变了自己, 不用生成新 的对象,所以 效率更高 >>> m=[1,2,3,4,5] >>> m.sort(reverse=True >>> m [5, 4, 3, 2, 1] >>> m ['This', 'is', 'a', 'test', 'string', 'from', 'Andrew'] >>> m.sort() >>> m ['Andrew', 'This', 'a', 'from', 'is', 'string', 'test'] >>> m.sort(key=str.lower) >>> m ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This'] sorted python的内置函数 能够 接受 一切 可迭代 的对象 排序后 不会改变自身 ,会新建一个对象,因此效率较低,但功能强大 对字典的排序(只是key) >>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5] >>> sorted("This is

Python中sort 和 sorted函数

天大地大妈咪最大 提交于 2020-02-06 01:01:14
一、介绍 sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序 二、sort和sorted的比较 1、用sort函数对列表排序时会影响列表本身,而sorted不会 举例: >>> a = [1,2,1,4,3,5] >>> a.sort() >>> a [1, 1, 2, 3, 4, 5]    >>> a = [1,2,1,4,3,5] >>> sorted(a) [1, 1, 2, 3, 4, 5] >>> a[1, 2, 1, 4, 3, 5]    2、 sorted ( iterable,cmp,key,reverse) 参数:iterable可以是list或者iterator; cmp是带两个参数的比较函数; key 是带一个参数的函数; reverse为False或者True; 举例说明 (1)用cmp函数排序 >>> list1 = [('david', 90), ('mary',90), ('sara',80),('lily',95)] >>> sorted(list1,cmp = lambda x,y: cmp(x[0],y[0])) [('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)] >>> sorted(list1,cmp = lambda x,y:

python中sort和sorted函数

橙三吉。 提交于 2020-02-06 01:00:58
在学习python的过程中,感觉python中的排序相和c++中的泛型算法还是比较相似的,但相对于c++而言更加简单易用。 python中列表的内置函数sort()可以对列表中的元素进行排序,而全局性的sorted()函数则对所有可迭代的序列都是适用的;并且sort()函数是内置函数,会改变当前对象,而sorted()函数只会返回一个排序后的当前对象的副本,而不会改变当前对象。 1、内置函数sort() 原型:sort(fun,key,reverse=False) 参数fun是表明此sort函数是基于何种算法进行排序的,一般默认情况下python中用的是归并排序,并且一般情况下我们是不会重写此参数的,所以基本可以忽略; 参数key用来指定一个函数,此函数在每次元素比较时被调用,此函数代表排序的规则,也就是你按照什么规则对你的序列进行排序; 参数reverse是用来表明是否逆序,默认的False情况下是按照升序的规则进行排序的,当reverse=True时,便会按照降序进行排序。 下面 通过简单的例子进行解说: (由于个人爱好原因,我的编译器是pycharm,所以接下来的所有示例都是在pycharm中可以运行的。) #coding:utf-8 from operator import attrgetter,itemgetter list1 = [(2,'huan',23),(12,

reverse()函数、sorted()函数和sort()函数

邮差的信 提交于 2020-02-05 22:25:10
a.reverse()函数原地反转,不具备排序功能,而且没有返回值 >> > a = [ 1 , 2 , 3 , 2 , 4 ] >> > print ( a . reverse ( ) ) #将a列表进行原地反转 None >> > a [ 4 , 2 , 3 , 2 , 1 ] sorted(a)函数默认是升序,有返回值,原来的列表不受影响 reverse=True降序 , reverse=False升序(默认) >> > a = [ 1 , 2 , 3 , 2 , 4 ] >> > sorted ( a ) #默认升序 [ 1 , 2 , 2 , 3 , 4 ] >> > a #原来的列表a不受影响 [ 1 , 2 , 3 , 2 , 4 ] sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。默认是升序,没有返回值,原来的列表受影响。 语法:list.sort( key=None, reverse=False) key ----主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse ---- 排序规则,reverse = True 降序, reverse = False 升序(默认)。 >> > a = [ 1 , 2 , 3 , 2 , 4 ] >> >

sort多目标跟踪代码windows7下运行配置

ぃ、小莉子 提交于 2020-02-05 10:40:09
sort多目标跟踪代码windows7下运行配置 1.下载源码 https://github.com/abewley/sort 2.安装需要的包 将requirement.txt中修改为 scipy filterpy==1.4.1 numba==0.38.1 scikit-image==0.16.2 scikit-learn==0.19.1 pip install -r requirements 3.用pycharm打开工程,只有一个代码sort.py 修改三处如下: if(display): #if not os.path.exists('mot_benchmark'): #print('\n\tERROR: mot_benchmark link not found!\n\n Create a symbolic link to the MOT benchmark\n (https://motchallenge.net/data/2D_MOT_2015/#download). E.g.:\n\n $ ln -s /path/to/MOT2015_challenge/2DMOT2015 mot_benchmark\n\n') #exit() plt.ion() fn = 'data/%s/img1/%06d.jpg' % (seq, frame) #fn = 'mot

cut,xargs,sort,tr,rename命令解析

对着背影说爱祢 提交于 2020-02-04 06:18:20
cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的 type命令。 语法: cut(选项)(参数) 选项: -b:仅显示行中指定直接范围的内容; -c:仅显示行中指定范围的字符; -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容; -n:与“-b”选项连用,不分割多字节字符; --complement:补足被选择的字节、字符或字段; --out-delimiter=<字段分隔符>:指定输出内容是的字段分割符; --help:显示指令的帮助信息; --version:显示指令的版本信息。 参数: 文件:指定要进行内容过滤的文件 ================================================================================== xargs xargs用作替换工具,读取输入数据重新格式化后输出。 定义一个测试文件,内有多行文本数据: cat test.txt a b c d e f g h i j k l m n o p q r s t u v w x y z 多行输入单行输出: cat test.txt | xargs a b c d e f g h i j k l m n o p q r s t u v w x y z -n选项 多行输出: cat

算法-排序-python

孤街醉人 提交于 2020-02-03 00:09:44
冒泡排序 __author__ = 'hp' def bubble_sort(li): "冒泡排序" n = len(li) for i in range(n-1): for j in range(n-1-i): if li[j]>li[j+1]: li[j],li[j+1] = li[j+1],li[j] def bubble_sort1(li): "冒泡排序" n = len(li) for i in range(n-1,0,-1): for j in range(i): if li[j]>li[j+1]: li[j],li[j+1] = li[j+1],li[j] # 优化 def bubble_sort2(li): n = len(li) for i in range(n-1): count = 0 for j in range(n-1-i): if li[j]>li[j+1]: li[j],li[j+1] = li[j+1],li[j] count += 1 # 如果已经有序,退出循环 if count == 0: return li = [4,3,2,1] bubble_sort1(li) print(li) 选择排序 __author__ = 'hp' # 选择排序 def select_sort(li): n = len(li) for j in range(n-1

elasticsearch 之 排序查询

人盡茶涼 提交于 2020-02-02 19:23:54
前提条件 不是所有的字段类型都能排序,只有下面两种类型可以   1.数字   2.日期 排序查询 sort 1.降序 desc GET zhifou/doc/_search { "query": { "match": { "from": "gu" } }, "sort": [ { "age": { "order": "desc" # 按照年龄降序排序 } } ] } 2.升序 asc GET zhifou/doc/_search { "query": { "match_all": {} }, "sort": [ { "age": { "order": "asc" # 按照年龄升序排序 } } ] } 来源: https://www.cnblogs.com/s686zhou/p/12253045.html

sqli_labs学习笔记(一)Less-38~Less-53

假装没事ソ 提交于 2020-02-02 18:23:13
续上,开门见山 堆叠注入,实际上就构成了两条 SQL 语句 http://43.247.91.228:84/Less-38/?id=1' union select 1,2,3 --+ // 未报错 http://43.247.91.228:84/Less-38/?id=1' union select 1,2,3,4 --+ // 报错 查询出有三个字段, 使用堆叠注入, 暴位置 http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,3;insert into users values(33,'joker','joker') --+ 爆表 http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database();insert into users values(33,'joker','joker') --+ 暴字段 http://43.247.91.228:84/Less-38/?id=-1' union select 1,2,group_concat(column_name) from information

Lua Sort 自定义排序的注意事项(转)

 ̄綄美尐妖づ 提交于 2020-02-02 13:31:41
原帖地址: https://blog.csdn.net/noetic_wxb/article/details/80748113 要求传入两个相同的数时要返回false, 换句话说,下面的函数用<=做比较,是错误的。 local compare_func = function(v1, v2) return v1 <= v2 -- error end  测试 local t = {4,3,2,1} table.sort(t,compare_func) for k, v in ipairs(t) do print(v) end 输出:1,2,4,3 为什么了? 因为内部使用sheel sort算法,具体细节不表。 在上面的例子中,算法运行中会调用compare_func (3,3),返回true,不满足相同元素返回false的要求。算法执行错误。 比较函数写<,不要写<= local compare_func = function(v1, v2) if v1[1] == v2[1] then return v1[2] >= v2[2] else return v1[1] > v2[1] end end local t = {{1,1},{1,1},{2,2},{3,3}} table.sort(t,compare_func) for k, v in ipairs(t) do print