精华内容
下载资源
问答
  • python列表怎么排序

    2020-12-08 14:06:49
    python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级python list排序中,后两中方法还可以加入条件参数进行排序。 reverse()方法 将列表中元素反转排序,...

    python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级python list排序中,后两中方法还可以加入条件参数进行排序。

    reverse()方法

    将列表中元素反转排序,比如下面这样

    
    >>> x = [1,5,2,3,4]
    >>> x.reverse()
    >>> x
    [4, 3, 2, 5, 1]
    

    reverse列表反转排序:是把原列表中的元素顺序从左至右的重新存放,而不会对列表中的参数进行排序整理。如果需要对列表中的参数进行整理,就需要用到列表的另一种排序方式sort正序排序。

    sort()排序方法

    此函数方法对列表内容进行正向排序,排序后的新列表会覆盖原列表(id不变),也就是sort排序方法是直接修改原列表list排序方法。

    
    >>> a = [5,7,6,3,4,1,2]
    >>> a.sort()
    >>> a
    [1, 2, 3, 4, 5, 6, 7]
    

    sorted()方法

    即可以保留原列表,又能得到已经排序好的列表。sorted()操作方法如下:

    
    >>> a = [5,7,6,3,4,1,2]
    >>> b = sorted(a)
    >>> a
    [5, 7, 6, 3, 4, 1, 2]
    >>> b
    [1, 2, 3, 4, 5, 6, 7]
    

    sorted()方法可以用在任何数据类型的序列中,返回的总是一个列表形式:

    
    >>> sorted('iplaypython.com')
    ['.', 'a', 'c', 'h', 'i', 'l', 'm', 'n', 'o', 'o', 'p', 'p', 't', 'y', 'y'
    
    展开全文
  • 如题,求助各位大佬,怎么对列表中的字典按某个key值的大小 排序呢??
  • Python 字典列表指定多个条件排序

    千次阅读 2019-10-21 15:58:56
    指定 一个条件 对列表进行排序 So easy! 那对 多个条件 又该怎么实现排序呢?今天看完本博文,你依然会感觉到 So easy! 代码如下: # -*- coding: utf-8 -*- # @Author: Nick.Peng # @Date: 2019-10-21 15:34:08...

    一、序言:

    想必看到本篇博文的老师们,在学习或工作中,肯定遇到了类似疑问???

    • 指定 一个条件 对列表进行排序 So easy!
    • 那对 多个条件 又该怎么实现排序呢?今天看完本博文,你依然会感觉到 So easy!

    ---- Nick.Peng


    二、代码实现如下:

    # -*- coding: utf-8 -*-
    # @Author: Nick.Peng
    # @Date:   2019-10-21 15:34:08
    # @Last Modified by:   Nick.Peng
    # @Last Modified time: 2019-10-21 15:51:31
    
    class_list = [{'class_id': 2, 'class_name': '初中物理班', 'stu_num': 2, 'site': 1},
                  {'class_id': 1, 'class_name': '高中数学班', 'stu_num': 2, 'site': 3},
                  {'class_id': 3, 'class_name': '初中数学班', 'stu_num': 1, 'site': 2},
                  {'class_id': 4, 'class_name': '初中数学班1', 'stu_num': 0, 'site': 4},
                  {'class_id': 5, 'class_name': '初中物理班1', 'stu_num': 0, 'site': 4},
                  {'class_id': 6, 'class_name': '高中数学班1', 'stu_num': 1, 'site': 4}]
    
    # ====== 方法一:======(利用list的sort方法,在原数据基础上进行排序)
    # class_list.sort(key=lambda x: (x['site']))	# 按一个条件排序
    class_list.sort(key=lambda x: (x['site'], -x["stu_num"]))	# 按多个条件排序
    print(class_list)
    
    # ====== 方法二:======(利用Python高阶函数sorted进行排序)
    # cls_li = sorted(class_list, key=lambda x: (x["site"], -x["stu_num"]))
    # print(cls_li)
    
    # 输出结果:
    [{'class_id': 2, 'class_name': '初中物理班', 'stu_num': 2, 'site': 1},
    {'class_id': 3, 'class_name': '初中数学班', 'stu_num': 1, 'site': 2},
    {'class_id': 1, 'class_name': '高中数学班', 'stu_num': 2, 'site': 3},
    {'class_id': 6, 'class_name': '高中数学班1', 'stu_num': 1, 'site': 4},
    {'class_id': 4, 'class_name': '初中数学班1', 'stu_num': 0, 'site': 4},
    {'class_id': 5, 'class_name': '初中物理班1', 'stu_num': 0, 'site': 4}]
    
    

    三、排序前后数据对比如下:

    在这里插入图片描述

    四、完结:

    如果对各位的学习和工作有帮助,记得点 赞 额 ~ ~ ~

    展开全文
  • Python3 对列表按元组指定列进行排序

    千次阅读 2019-03-15 11:04:20
    我们着重讨论当list中的元素为元组时,排序规则是怎么样的: 在默认情况下sort和sorted函数接收的参数是元组时,它将会先按元组的第一个元素进行排序再按第二个元素进行排序,再按第三个、第四个…依次排序。 ...

    我们着重讨论当list中的元素为元组时,排序规则是怎么样的:

     

    在默认情况下sort和sorted函数接收的参数是元组时,它将会先按元组的第一个元素进行排序再按第二个元素进行排序,再按第三个、第四个…依次排序。 
    我们通过一个简单的例子来了解它,以下面这个list为例:

    data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]

    我们通过sorted()对它进行排序:

    data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
    result = sorted(data)
    print(data) #结果为 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
    print(result) #结果为 [(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]
    

    会发现排序后的结果中(0, ‘B’)在(0, ‘a’)的前面。这是因为在按元组第一个元素排好之后,将(0, ‘B’), (0, ‘a’)再按第二个元素进行排序了,而’B’的ASCII编码比’a’小,所以(0, ‘B’)就排在(0, ‘a’)的前面了。

    那如何想要让它排序时不分大小写呢?

    这就要用到sort方法和sorted方法里的key参数了。 
    我们来看一下具体的实现:
     

    data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
    #利用参数key来规定排序的规则
    result = sorted(data,key=lambda x:(x[0],x[1].lower()))
    
    print(data) #结果为 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
    print(result) #结果为 [(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]
    

    其中的lambda x:(x[0],x[1].lower()可以理解为一个匿名函数; 
    其功能类似于:

    def fun(x)
        return(x[0],x[1].lower())

    如果想要以字母作为第一排序规则,并且字母大小写不敏感,该怎么实现? 
    这就能要运用到之前所讲到的

    在默认情况下sort和sorted函数接收的参数是元组时,它将会先按元组的第一个元素进行排序再按第二个元素进行排序,再按第三个、第四个…依次排序。

    再配合lambda返回一个自定义tuple;代码如下:

    data = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
    #将x[1].lower()作为返回元组里的第一个元素,按照sorted的排序规律,就会先按字母排序,再按数字排序了
    result = sorted(data,key=lambda x:(x[1].lower(),x[0]))
    
    print(data) #结果为 [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')] 
    print(result) #结果为 [(0, 'a'), (1, 'A'), (2, 'A'), (0, 'B'), (1, 'B')]
    

    转载链接:https://blog.csdn.net/qq_24076135/article/details/78550898

    更多关于python中List排序问题的解析,可以去原博客查看~~

    展开全文
  • 主要学习列表元素的排序方法

    班里来了几个新同学,我需要按照名字进行排序
    1、我想了解一共来了几个同学啊,使用len()查看列表的长度

    people=['zhangziyi','yangmi','tangyan','anglybaba']
    count=len(people)
    print(count)

    输出:4
    2、对列表进行排序,可以使用sort()和sorted()

    • 使用sort()进行不可复原型排序,排完后我再也不能查看排序之前的顺序了

      people=['zhangziyi','yangmi','tangyan','anglybaba']
      people.sort()
      print(people)

      输出:[‘anglybaba’, ‘tangyan’, ‘yangmi’, ‘zhangziyi’]

    • 使用sort(),我想进行倒序排列,增加reverse=True 参数

      people=['zhangziyi','yangmi','tangyan','anglybaba']
      people.sort(reverse=True)
      print(people)

      输出:[‘zhangziyi’, ‘yangmi’, ‘tangyan’, ‘anglybaba’]

    • 我想进行临时排序,排序使用完成后我还要恢复原来的顺序,使用sorted()

      people=['zhangziyi','yangmi','tangyan','anglybaba']
      print(sorted(people))      #输出排序后的结果
      print(people)            

      输出:
      [‘anglybaba’, ‘tangyan’, ‘yangmi’, ‘zhangziyi’]
      [‘zhangziyi’, ‘yangmi’, ‘tangyan’, ‘anglybaba’]
      我想进行临时性的逆序排序,使用sorted(),并添加reverse=True参数

    #突然发现做倒序排序时上边的例子太不明显了,我们修改一下名字
    people=['shangziyi','yangmi','tangyan','anglybaba']
    print(sorted(people,reverse=True))  #输出排序后的结果
    print(people)

    输出:
    [‘yangmi’, ‘tangyan’, ‘shangziyi’, ‘anglybaba’]
    [‘shangziyi’, ‘yangmi’, ‘tangyan’, ‘anglybaba’]
    3、我想把列表倒着打出来,可以使用reverse(),是不是很奇怪,前边要排序倒序的时候用到了reverse=True

    people=['shangziyi','yangmi','tangyan','anglybaba']
    people.reverse()
    print(people)

    输出:
    [‘anglybaba’, ‘tangyan’, ‘yangmi’, ‘shangziyi’]

    注意:
    sort()和reverse()本身是没有返回值的 (我是这么理解的)
    sorted()是有返回值的,使用它时,返回值和原列表都可以使用

    练习
    想出5种你喜欢吃的水果,避免按照顺序排列,写入列表,并使用各种排序进行验证

    fruits=['banana','apple','lemon','peach','cantaloupe']
    #按照原始顺序打印列表
    print(fruits)
    #使用sorted()按照字母排列顺序打印列表,并验证原列表顺序未变
    print(sorted(fruits))
    print(fruits)
    #使用sorted()按照字母倒序排列打印列表,并验证原列表顺序未变
    print(sorted(fruits,reverse=True))
    print(fruits)
    #按照原列表相反的顺序打印列表,并验证原列表顺序变了
    fruits.reverse()
    print(fruits)
    #恢复fruits的原始顺序
    fruits.reverse()
    print(fruits)
    #使用sort()按照字母正序排列,并验证原始顺序改变了
    fruits.sort()
    print(fruits)
    #使用sort()按照字母倒序排列,并验证原始顺序改变了
    fruits.sort(reverse=True)
    print(fruits)

    输出:
    [‘banana’, ‘apple’, ‘lemon’, ‘peach’, ‘cantaloupe’]
    [‘apple’, ‘banana’, ‘cantaloupe’, ‘lemon’, ‘peach’]
    [‘banana’, ‘apple’, ‘lemon’, ‘peach’, ‘cantaloupe’]
    [‘peach’, ‘lemon’, ‘cantaloupe’, ‘banana’, ‘apple’]
    [‘banana’, ‘apple’, ‘lemon’, ‘peach’, ‘cantaloupe’]
    [‘cantaloupe’, ‘peach’, ‘lemon’, ‘apple’, ‘banana’]
    [‘banana’, ‘apple’, ‘lemon’, ‘peach’, ‘cantaloupe’]
    [‘apple’, ‘banana’, ‘cantaloupe’, ‘lemon’, ‘peach’]
    [‘peach’, ‘lemon’, ‘cantaloupe’, ‘banana’, ‘apple’]
    总结:
    好吧,这节的学习到此结束,主要学习了列表的元素排序方法想要永久排序就使用sort(),想要临时排序就使用sorted(),想要知道列表的长度就使用len(),想要按照原顺序的倒序排列可以使用reverse();sort()、sorted()也可以添加reverse=True参数的方式在排序的基础上进行倒序排序

    展开全文
  • python怎么按日期进行排序

    千次阅读 2020-05-24 00:05:28
    按日期对列表进行排序时会出现10、11、12月排到了前面去: 解决思路: 把日期标准化,转化成下面这样: 2015/01 2015/10 2015/11 2015/12 2015/02 2015/03 ······ 解决方法: 原始数据如下: import pandas ...
  • sort()可以按字母的顺序来对列表进行永久性排序(改变列表自身的排序): list_1 = ['one', 'two', 'three', 'four', 'five'] print(list_1) list_1.sort() print(list_1) 现在list_1列表中有几个首字母相同的元素...
  • python实现选择排序

    2018-09-27 11:46:46
    选择排序即是每次对列表进行查找,并添加到新的列表中。 因此选择排序的运行时间为O(n^2)。虽然速度不是很快,但是很灵活。 ​ """ 选择排序 """ def findSmallest(arr): ...
  • 实际上,我们在扑克牌进行排序时就已经使用了插入排序算法。回想一下玩扑克牌时,是怎么进行排序的(这里是升序为例子)。 1.拿到一副顺序杂乱的扑克牌(类比乱序的列表lst); 2.以最左边的扑克牌为基准...
  • Python中的排序

    2018-09-06 15:44:19
    我们需要对列表,字典进行排序Python提供了两个方法1.用List的成员函数sort进行排序,修改当前对象 2.用函数sorted进行排序返回副本,原始输入不变 3.sort()是列表中的方法,只能用于列表。而sorted可以用于任何...
  • 快速排序 在总结出现的小问题...若列表和只包含有一个元素的列表进行排列顺序,可直接返回列表内容;但是如果上升到两个或三个以上咱们应该怎么去给他排序呢? 这里呢,我选用列表中包含三个元素的例子: ...
  • 列表三、操作列表1.使用方法sort() 对列表进行永久性排序 Python资料:Python编程XG:从入门到实践. 三、操作列表 简单的学习了怎么创建列表, 1.使用方法sort() 对列表进行永久性排序 ...
  • python序列的排序 sorted

    2020-07-25 23:55:45
    提及sort和sorted的异同点,主要是针对sorted函数的使用总结,在字符串,列表,字典,对象等进行排序时的使用方法,应该怎么去传递相应的key达到想要的排序效果,另外还简单介绍了可用来作为key传递的类对象...
  • 一、基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。排序,数字、字符串按照ASCII,中文按照unicode从小到大排序 如果有一个人排序好...
  • 首先如果我们相对单词进行排序我们应该怎么做呢? 如我们要下面的单词进行排序: hello see english french father mother brother 我们不需要自己去思考我们可以要“别人”来帮我们做这件事: 1.使用python的...
  • 我们都知道python中的字典是无序的,而要怎么它进行排序呢,在这笔者提供一种方法 把字典先转变为一个元组,再放进列表里利用lambda函数进行"值"来进行排序 以下为代码部分: #这里我们是一段字符进行排序...
  • 快速排序有非常明显的分而治之的思想在其中,首先我们来一个列表进行排序对排序算法来说,最简单的列表怎么样的呢?那就是根本不需要排序的数组 如果一个列表是空的或者是只有一个数,根本不用排序 def ...
  • python sort函数怎么

    2020-04-05 16:39:49
    转载自品略图书馆... python sort()函数用于列表进行排序,如果指定参数,则使用比较函数指定的比较函数。 sort()方法语法: 1 list.sort(cmp=None, key=None, reverse=False) 参数 cmp --...
  • 对列表是否有重复元素进行判断。如果一个元素在列表中出现了不止一次 ,则输出此列表有重复元素。(2)学校表彰,班上获得三好学生表彰的有王莉、李红、张雪,获得优秀学生干部表彰的...
  • 列表有自己的sort方法,器对列表进行原值排序,既然是原址排序,那显然元组不可能拥有这个方法,因为元组是不可修改的。 排序,数字、字符串按照ASCII,中文按照unicode从小到大排序 a = [4,5,2,3,1,6] a.sort...
  • 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。 排序,数字、字符串按照ASCII,中文按照unicode从小到大排序 如果需要一个排序好的副本...

空空如也

空空如也

1 2 3 4
收藏数 75
精华内容 30
关键字:

python怎么对列表排序

python 订阅