python、js、php区别---8、排序
python、js、php区别---8、排序
一、总结
一句话总结:
python中的排序函数有sort(对列表排序)和sorted(对所有可迭代序列排序),可以通过reverse参数指定倒序排序,key参数指定排序字段
js中的排序就是sort方法,可以指定排序函数来进行排序
php中有usort方法来指定排序函数进行排序,也有sort、rsort、ksort、krsort等方法按照指定规则排序
二、排序
博客对应课程的视频位置:
8、排序(一)
https://www.fanrenyi.com/video/33/303
8、排序(二)
https://www.fanrenyi.com/video/33/304
1、python
""" 1、list的sort方法 2、全局sorted()方法来对可迭代的序列排序生成新的序列 """ # 1、list的sort方法 # a、sort升序排列 # list1=[43,54,12,3,1,435] # list1.sort() # print(list1) # b、sort降序排列 # list1=[43,54,12,3,1,435] # list1.sort(reverse=True) # print(list1) # c、对元组列表进行排序,指定按照元组的第二个元素排序 # # 获取列表的第二个元素 # def takeSecond(elem): # return elem[1] # random = [(2, 2), (3, 4), (4, 1), (1, 3)] # # 指定第二个元素排序 # random.sort(key=takeSecond) # print (random) # 2、全局sorted()方法来对可迭代的序列排序生成新的序列 # a、正序 # list1=[43,54,12,3,1,435] # ans=sorted(list1) # print(list1) # print(ans) # b、倒序 # list1=[43,54,12,3,1,435] # ans=sorted(list1,reverse=True) # print(list1) # print(ans) # c、利用key,指定对哪个字段进行排序 # students = [ # ('john', 'A', 15), # ('jane', 'B', 12), # ('dave', 'B', 18)] # ans = sorted(students, key=lambda s: s[2], reverse=True) # 按年龄倒序排序 # print(ans) # d、对字典排序 # dict1={'a':1,'c':3,'b':2} # ans = sorted(dict1) # print(ans) #['a', 'b', 'c'] # dict1={'a':1,'c':3,'b':2} # print(dict1.items()) # # dict1.items()返回的是: dict_items([('a', 1), ('c', 3), ('b', 2)]) # ans=sorted(dict1.items(),key=lambda x:x[1]) # # 按字典集合中,每一个元组的第二个元素排列。 # x相当于字典集合中遍历出来的一个元组。 # print(ans) # # 得到: [('a', 1), ('b', 2), ('c', 3)] # print(dict(ans)) # # 得到: {'a': 1, 'b': 2, 'c': 3}
2、js
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> /* 1、对索引数组排序 2、对关联数组排序 3、对对象数组排序 */ // 1、对索引数组排序 // sort方法默认是按照unicode编码进行排序,而不是按照数字进行排序 // let arr=[34,511,1,3,64,8]; // arr.sort(function(a,b){ // return a-b; // }); // console.log(arr); // 1.2、倒序 // let arr=[34,511,1,3,64,8]; // arr.sort(function(a,b){ // return b-a; // }); // console.log(arr); // 2、对关联数组排序 // let arr=[34,511,1,3,64,8]; // arr["a"]=18; // arr["b"]=29; // console.log(arr); // //[34, 511, 1, 3, 64, 8, a: 18, b: 29] // arr.sort(function(a,b){ // return b-a; // }); // console.log(arr); // //[511, 64, 34, 8, 3, 1, a: 18, b: 29] // //索引数组的位置排好了,关联数组的位置没有 // 3、对对象数组排序,对对象里面的元素按照年纪排序 // let objArr=[ // {name:'aaa',age:28}, // {name:'ccc',age:1}, // {name:'ddd',age:5}, // {name:'bbb',age:3}, // ]; // console.log(objArr); // objArr.sort(function(a,b){ // return a.age-b.age; // }); // console.log(objArr); </script> </body> </html>
3、php
<?php /* 1、排序索引数组 2、排序关联数组 3、排序多维数组 */ // 1、排序索引数组 // $arr=[34,511,1,3,64,8]; // print_r($arr); // sort($arr); // print_r($arr); // rsort($arr); // print_r($arr); // 2、排序关联数组 // $arr=[1=>34,23=>511,15=>1,"a"=>3,64,"k"=>8]; // print_r($arr); // sort($arr); // print_r($arr); // rsort($arr); // print_r($arr); // echo "------------------------\n"; // ksort($arr); // print_r($arr); // krsort($arr); // print_r($arr); // 3、排序多维数组 // $arr=[ // ["name"=>"dd","age"=>11], // ["name"=>"aa","age"=>23], // ["name"=>"cc","age"=>89], // ["name"=>"bb","age"=>5] // ]; // print_r($arr); // sort($arr); // print_r($arr); // 按age排序 // function cmp($a,$b){ // return $a["age"]-$b["age"]; // }; // usort($arr, 'cmp'); // print_r($arr); ?>