精华内容
下载资源
问答
  • Python排序方法-列表排序sorted的用法:正数在前负数在后,整数从小到大,负数从大到小sorted如何使用?使用函数进行此类排序操作 sorted如何使用? 关于sorted的用法:sorted是python里的一个常用高阶函数,能够进行...

    Python排序方法-列表排序sorted的用法:正数在前负数在后,整数从小到大,负数从大到小

    sorted如何使用?

    关于sorted的用法:sorted是python里的一个常用高阶函数,能够进行一些复杂的排序操作,例:假设存在列表 a = [“paparazzi”,“yang”,“maybe”,“redpanda”,“sylar”,“fy”,“ameame”],我想要根据字符串的长度对列表进行排序:

    a = ["paparazzi","yang","maybe","redpanda","sylar","fy","ameame"]
    print(sorted(a)) # 这个情况是默认按照字符串首字母的acsii 码进行排序
    print(sorted(a, key=len))
    # key 关键字接收的参数是一个函数
    # 当我设置了 key=len 时,字符串排序的时候回先交给 len 这个函数去处理  
    # 然后根据 len(str) 返回的结果进行排序
    

    结果比较如下:
    在这里插入图片描述

    解决列表排序:正数在前,负数在后
    现有列表:list1=[7, -8, 5, 4, 0, -2, -5],目标是:正数在前负数在后,正数从小到大,负数从大到小

    list1 = [7, -8, 5, 4, 0, -2, -5]
    print(sorted(list1, key=lambda x: x*-10 if x <= 0 else x))
    # 这里的匿名函数意思是小于等于 0 的负数和 0 会乘 -10
    # 大于 0 的正数就返回他们本身
    # 0-10 后返回的就是它本身,后面会说明这么做的理由
    

    此时得到的结果:
    在这里插入图片描述
    但是0既非正数也不是负数,我认为应该排列到正数和负数的中间(ps:别问,问就是处女座)
    于是对在 x*-10 的后面增加了一个 +10 的操作, 代码如下:

    list1 = [7, -8, 5, 4, 0, -2, -5]
    print(sorted(list1, key=lambda x: x*-10 +10 if x <= 0 else x))
    

    运行结果如下
    在这里插入图片描述
    OK目的达到

    使用函数进行此类排序操作

    其实一开始最先想到的办法并不是 sorted 和匿名函数,再介绍一种比较简单暴力的方法对这个列表进行排序吧

    list1 = [7, -8, 5, 4, 0, -2, -5]
    # 正负分离 再重组
    def zf_sort(list1):
        list_z, list_f = [], []
        for temp in list1:
            if temp > 0:
                list_z.append(temp)
            else:
                list_f.append(temp)
    
        list_z.sort()
        list_f.sort(reverse=True)
        return list_z + list_f
    
    print(zf_sort(list1))
    

    这个方法的核心想法是,直接通过导入函数,将列表里面的数值以0为分界线,将数据分到两个列表中,再分别对数据进行排序,得到与 sorted 方法同样的结果。
    结果如下
    在这里插入图片描述

    展开全文
  • Python如何对字典按值的大小进行排序输出打印 问题描述 例如某个班级的数学成绩如下 dict_points = { "小红": 87, "丽华": 88, "大熊": 89, "丽丽": 83, "雪儿": 91 } 我们需要对该字典...

    Python中如何对字典按值的大小进行排序输出打印

    问题描述

    例如某个班级的数学成绩如下

    dict_points = {
    			   "小红": 87,
    			   "丽华": 88,
    			   "大熊": 89,
    			   "丽丽": 83,
    			   "雪儿": 91
    			   }
    

    我们需要对该字典进行输出打印,要求是按分数从高到低输出:

    解决思路

    1. 首先将该字典的每个item转化为元组的(value,key)形式,例如(87,“小红”
    2. 将每个item转收集并放入列表 li
    3. max() 方法获取值最大的元组,遍历列表li
    li = []
    for key in dict_points.keys():
    	item_set = (dict_points[key],key)
    	li.append(item_set)
    
    for i in range(len(li)):
    	max_item_set = max(li)
    	print("\t\t" + max_item_set[1] + "\t\t" + str(max_item_set[0]))
    	li.remove(max_item_set)
    

    运行效果

    		雪儿		91
    		大熊		89
    		丽华		88
    		小红		87
    		丽丽		83
    
    展开全文
  • sort函数可以对列表进行从小到大的排序,也可以对列表进行从大到小排序 使用“列表名.sort(reverse=True)”语句就可以对列表进行冒泡排序了 示例如下: li = [12, 87, 98, 21, 35, 645] li.sort(reverse=False)...

    python进行冒泡排序的方法:

    在python中冒泡排序可以使用sort函数

    sort函数可以对列表进行从小到大的排序,也可以对列表进行从大到小的排序

    使用“列表名.sort(reverse=True)”语句就可以对列表进行冒泡排序了

    示例如下:

     
    li = [12, 87, 98, 21, 35, 645]
    
    li.sort(reverse=False)
    
    print(li)
    

    执行结果如下:

    在这里插入图片描述

    展开全文
  • python 排序问题

    2019-05-10 10:20:56
    1、从小到大 或 从大到小 2、元素反转 3、列表元素去重。 下面分别来看在python如何实现: 一、从小到大 或 从大到小 可以使用的函数:list.sort() 、 sorted(list) 两个函数。区别如下: a、list.sort()...

    在排序问题中,常见的就是下面几类:

    1、从小到大 或  从大到小

    2、元素反转

    3、列表元素去重。

    下面分别来看在python中如何实现:

    一、从小到大 或  从大到小

    可以使用的函数:list.sort()  、 sorted(list) 两个函数。区别如下:

    a、list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。

    b、list.sort()方法仅被定义在list中,相反地sorted()方法对所有的可迭代序列都有效。

    1、使用sorted(list)排序

    list0 = [1,2,4,5,7,9,2,4,6,44,7,1]
    
    # 排序操作:
    # 1.1 从小到大
    list1_1 = sorted(list0)
    print('原列表:\n',list0)
    print('sorted()从小到大:\n',list1_1)
    
    # 1.2 从大到小
    list1_2 = sorted(list0,reverse=True)
    #list1_2.sort(reverse=True)
    print('原列表:\n',list0)
    print('sorted()从大到小:\n',list1_2) 

    运行结果:

    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    sorted()从小到大:
     [1, 1, 2, 2, 4, 4, 5, 6, 7, 7, 9, 44]
    
    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    sorted()从大到小:
     [44, 9, 7, 7, 6, 5, 4, 4, 2, 2, 1, 1]

    2、使用 list.sort() 排序

    list0 = [1,2,4,5,7,9,2,4,6,44,7,1]
    
    # 排序操作:
    # 1.1 从小到大
    list1_1 = list0[:]
    list1_1.sort()
    print('原列表:\n',list0)
    print('sort()从小到大:\n',list1_1)
    
    # 1.2 从大到小
    list1_2 = list0[:]
    list1_2.sort(reverse=True)
    #list1_2.sort(reverse=True)
    print('原列表:\n',list0)
    print('sort()且从大到小:\n',list1_2) 

    运行结果:

    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    sort()从小到大:
     [1, 1, 2, 2, 4, 4, 5, 6, 7, 7, 9, 44]
    
    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    sort()且从大到小:
     [44, 9, 7, 7, 6, 5, 4, 4, 2, 2, 1, 1]

    二、反转排序

    使用 reversed(list) 函数来实现,但是一定要注意,要使用  list(reversed(list_name)) 的形式才能输出 列表

    list0 = [1,2,4,5,7,9,2,4,6,44,7,1]
    
    # reversed 必须跟 list一起用,输出的结果才是列表
    list1_3 = list(reversed(list0))  
    print('原列表:\n',list0)
    print('list(reversed())操作之后:\n',list1_3) 

    运行结果:

    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    list(reversed())操作之后:
     [1, 7, 44, 6, 4, 2, 9, 7, 5, 4, 2, 1]

    三、列表去重

    用到  set(list) 函数

    list0 = [1,2,4,5,7,9,2,4,6,44,7,1]
    
    # set 必须跟 list一起用,输出的结果才是列表
    list2 = list(set(list0))       # 改变了列表顺序的去重方法
    list2_1 = sorted(set(list0),key=list0.index)  # 不改变列表顺序的去重方法
    print('原列表:\n',list0)
    print('list(set())操作之后(改变列表元素顺序):\n',list2)
    print('list(set())操作之后(不改变列表元素顺序):\n',list2_1) 

    运行结果:

    原列表:
     [1, 2, 4, 5, 7, 9, 2, 4, 6, 44, 7, 1]
    list(set())操作之后(改变列表元素顺序):
     [1, 2, 4, 5, 6, 7, 9, 44]
    list(set())操作之后(不改变列表元素顺序):
     [1, 2, 4, 5, 7, 9, 6, 44]

    注意:list.sort()还有很多用法,可以参考 

    https://www.runoob.com/python/att-list-sort.html

     

     

     

    展开全文
  • python实现冒泡排序

    2020-03-12 00:28:30
    如何将一组数列中的数字按照从小到大( 或者从大到小) 的顺序重新排序? 几种经典的算法是: 冒泡排序\选择排序\插入排序\归并排序\快速排序\计数排序. 1 冒泡排序 原理 冒泡排序是对一组数列中连续的两个数字进行...
  • 识别名称按从大到小读取然后排序也可,感谢大佬前来帮助小白。 <p>import os path=input('请输入文件路径(结尾加上/):') <p><br /> #获取该目录下所有文件,存入列表中...
  • python 对字典排序

    2015-07-12 16:48:00
    使用sorted命令,默认进行从大到小字母序排序: >>> from operator import itemgetter >>> a = {} >>> a['1'] = 1 >>> a['2'] = 2 >>> ...
  • 分治排序Python实现

    2018-09-05 13:11:17
    设想有两副排序好的扑克牌将他们合并成排序好的一副牌总数为N,只需要将牌顶的派比较然后根据从大到小或者从小到大放到手中即可,这样就把问题变成了如何将N/2张牌排序,最后将一副牌分成N个小份,复杂程度以对数计...
  • 摘要:本文主要是讲解一下,如何进行排序。分为两种情况,不分组进行排序和组内进行...例如,我们队comment_num这一列进行从大到小排序,然后给出序号。如下图: 可以看到,sort_num这一列就是我们队comment_num的
  • 算法原理首先排序列表中找到最小()的元素,存放元素列表的起始位置(与起始位置进行交换),作为已排序序列,第一轮排序完成。然后,继续从未排序序列中找到最小()的元素,存放排序序列的末尾。直到所有...
  • [数据结构]冒泡排序-python实现冒泡排序介绍时间复杂度代码实现运行示例 ...无序最终有序,算法不存在最好或者最坏的情况 (无论结果如何,都会进行遍历)。算法时间复杂度为o(n2)。 代码实现 ...
  • 题目 如何得到一个数据流中的中位数?如果数据流中读出奇数个数值,那么中位数就是...void addNum(int num) - 数据流中添加一个整数数据结构中。 double findMedian() - 返回目前所有元素的中位数。 示例 1:.
  • 算法思想 归并排序(Merge Sort)指的是...3)依次取出指针值,比较大小,将较值追加新数列,同时将较值的指针往后移动一位; 4)如果其中一个指针到头了,那么将另一个指针剩下的数列直接追加结果数列即可;
  • 尹成Python27天入门项目实战

    千人学习 2020-12-05 17:04:22
    尹成Python27天入门实战项目!全课665节讲解详细易操作,助力实战项目能力成长,轻松、简单、易懂! day1  python入门与学习方法精确思维与用到才能记忆深刻课程简介课前介绍计算机简介与硬盘概念内存作用...
  • 现在,我们一个更加直观的角度来看看如何解决这个问题。 在拿一块1680×640的土地时,我们想要把它平均划分成正方形,并且试图保证正方形面积最大。我们首先将土地划分出最大的正方形,可以画出两块640×640的...
  • LeetCode python-976. 三角形的最大周长 先看题目: (题目来力扣网站 思路: 拿到这道题,首先想到三个数构成...①排序,将给定的列表进行从大到小排序。 ②满足构成三角形的条件,返回周长,不满足则返回0。 PyC...
  • 比如第一列乘2 第2列乘3 第三列乘8.....(假设一个有三列) 乘完之后得到一个新的excel 再对这个新的excel的每行进行相加 得到一个数值 根据这个数值所在列的大小按照从大到小的顺序进行排序
  • 有序和无序仅仅指节点所包含的数据成员的大小排列顺序,有序指各个节点按照节点数据成员的大小顺序排序从大到小或从小到大。无序则可以任意排列。 链表节点实现 实现方式完全同单向无序列表,这里不再过多介绍,感...
  • python(sorted()函数)

    2018-01-31 21:02:27
    从大到小)或字符串(ASCII编码)进行排序 #对数字进行排序二、如何使用? list1 = [1,52,2,44,1132,54,9] #默认按升序排序 rs = sorted(list1) print(rs) 执行结果:[1, 2, 9, 44, 52, 54, 1132] #实现一个按照...
  • Python - 100天新手大师 作者:骆昊 说明:项目上线获得8w+星标以来,一直收到反馈说基础部分(前15天的内容)对新手来说是比较困难的,建议有配套视频进行讲解。最近把基础部分的内容重新创建了一个名为...
  • 初识C语言之冒泡排序

    2021-06-08 12:46:19
    冒泡排序的实现 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 ...它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他
  • Day05 sort排序

    2020-12-08 23:07:15
    先按数字排从大到小</strong>,在一样数字的情况下,再按字母的从小到大排序。求助该如何处理? 感谢帮助!</p><p>该提问来源于开源项目:selfteaching/selfteaching-python-camp</p>...
  • 我有100w个客户的数据,客户的评分是按照从大到小排序的,我想将前10%的客户数据标识为A类,20%-70%的客户标识为B类,剩下的标识为C类,请问大神们如何做呢?</p>
  • <ul><li>下一步粘邮件里,或者生成一个csv文件发出去</li><li>然而这是一个看脸的社会,运维也逃脱不了这个魔咒</li></ul> 级别2 浏览器端展现 生成list之后,拼接sql,存入数据库 <h2>talk is ...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

python如何从大到小排序

python 订阅