微信扫一扫打赏支持

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);

?>

 

 

 

 

 
posted @ 2020-06-26 10:12  范仁义  阅读(212)  评论(0编辑  收藏  举报