python按照多个条件排序的方法
对tuple进行排序,先按照第一个元素升序,如果第一个元素相同,再按照第二个元素降序排列。
L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 64), (32, 11)] L.sort(key=lambda x: (x[0], -x[1])) print(L)
结果:
[(12, 24), (12, 12), (32, 64), (32, 15), (32, 11), (34, 13)]
以上这篇python按照多个条件排序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
方法一: def dict_to_numpy_method1(dict): dict_sorted=sorted(dict.iteritems(), key=lambda d:d[0]) results=[value for key,value in dict_sorted] 方法二: def dict_to_numpy_method2(dict): keys=dict.keys() keys.sort() results=[dic[key] for key in keys] 方法三: def
-
python实现合并两个排序的链表
剑指offer:合并两个排序的链表,Python实现 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 吐槽 本来想用递归实现,但是大脑卡壳,没有想到合适的递归策略,潜意识里还是把两个链表当成两个数组来看待,写出了非递归版本的代码.写完后回看自己写的代码,逻辑不够一目了然,中间变量过多,代码过长,一定不是好代码.上网查阅,发现一个如此美妙的递归版本,哇,写的好美啊!!!看来我对递归的了解和灵活应用还不够啊,至少在链表上还不够啊!!! 解题思路
-
python快排算法详解
快排是python经典算法之一. 1.下面讲解的是什么是快排和快排的图示. 2.快排是一种解决排序问题的运算方法. 3.快排的原理:在数组中任意选择一个数字作为基准,用数组的数据和基准数据进行比较,比基准数字打的数字的基准数字的右边,比基准数字小的数字在基准数字的左边, 第一次排序之后分为比基准数据大或比基准数据小两个部分,用刚开始的方法继续排序,直到每个排序分组中只有一个数据或没有数据为止. 4.下面以[ 7 91 23 1 6 3 79 2 ]数组为例子,进行快排运算. 5.选基准:选择数组
-
Python实现对特定列表进行从小到大排序操作示例
本文实例讲述了Python实现对特定列表进行从小到大排序操作.分享给大家供大家参考,具体如下: 1.在系统内新建文件rizhireplacelist.txt root@kali:~# cd python/ root@kali:~/python# ls 111.txt listsalaryver2.py readfile2.py rizhireplacelist.txt rizhi.txt tixingexcel.txt
-
python爬取酷狗音乐排行榜
本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下 #coding=utf-8 from pymongo import MongoClient import time import requests from lxml import etree client = MongoClient() #连接mongo hello = client.hello #连接数据库 user = hello.song #连接表 headers = { 'User-Agent': 'M
-
Python3删除排序数组中重复项的方法分析
本文实例讲述了Python3删除排序数组中重复项的方法.分享给大家供大家参考,具体如下: 给定一个排序数组,你需要在[原地]删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在[原地]修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2. 你不需要考虑数组中超出新长度后面的元素. 示例 2: 给定 nums =
-
Python列表常见操作详解(获取,增加,删除,修改,排序等)
本文实例讲述了Python列表常见操作.分享给大家供大家参考,具体如下: 列表是由一系列按特定顺序排列的元素组成的对象.因为列表通常包含多个元素, 所以建议给列表指定一个表示复数的名称. 我们用方括号( [] ) 来表示列表, 并用逗号来分隔其中的元素. types=['娱乐','体育','科技'] print(types) 运行结果: ['娱乐', '体育', '科技'] 可以看到,打印列表的同时,也会将方括号打印出来. 1 获取元素 要获取列表中的某个元素, 在方括号内指定元素的索引即可:
-
python按照多个条件排序的方法
对tuple进行排序,先按照第一个元素升序,如果第一个元素相同,再按照第二个元素降序排列. L = [(12, 12), (34, 13), (32, 15), (12, 24), (32, 64), (32, 11)] L.sort(key=lambda x: (x[0], -x[1])) print(L) 结果: [(12, 24), (12, 12), (32, 64), (32, 15), (32, 11), (34, 13)] 以上这篇python按照多个条件排序的方法就是小编分享给大
-
浅析Python中的多条件排序实现
多条件排序及itemgetter的应用 曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多条件排序,如果积分相同,则按净胜球,再相同按进球数,再相同按失球数. 即按积分P.净胜球GD.进球GS.失球GA这样的顺序. 在python中,排序非常方便,排序的参数主要有key.reverse.参数cmp不建议使用了,在python3.0被移除了,用参数key代替. 对于多条件排序,也非常简单,
-
Python实现插入排序和选择排序的方法
话不多说,让我们从最基本的排序算法开始吧 插入排序 如下图所示,插入排序的实现思路顾名思义,就是 不断地在一个已经是有序的数组中,寻找合适位置并插入新元素 . 具体实现步骤为: 首先我们把整个数组拆分为有序区间和未排序区间,有序区间在插入排序一开始只有一个元素,就是数组的第一个元素. 接在有序区间之后的一个元素就是准备插入的元素,在图中就是标为绿色的元素,在有序区间内寻找位置并插入. 其寻找逻辑为:从后往前依次进行比较,如果待插入元素大于当前元素,则将待插入元素插入到当前元素的后一位,如果待插入
-
python字典多条件排序方法实例
项目编写过程中,总能遇见对字典进行排序什么的,如果要实现多条件排序只需要下面几行代码实现.充分体现了python的好处了. 复制代码 代码如下: teamitems = [{'team':'France' , 'P':1 , 'GD':-3 , 'GS':1 , 'GA':4}, {'team':'Uruguay' , 'P':7 , 'GD':4 , 'GS':4 , 'GA':0}, {'team':'SouthAfrica'
-
Python中对元组和列表按条件进行排序的方法示例
在python中对一个元组排序 我的同事Axel Hecht 给我展示了一些我所不知道的关于python排序的东西. 在python里你可以对一个元组进行排序.例子是最好的说明: >>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')] >>> sorted(items) [(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')] 默认情况下内置的sort和so
-
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
本文实例讲述了Python实现连接两个无规则列表后删除重复元素并升序排序的方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 list_one=[3,6,2,17,7,33,11,7] list_two=[1,2,3,7,4,2,17,33,11] list_new=list_one+list_two list=[] i=0 for x in list_new : if x not in list : list.append(x) list
-
Python实现多属性排序的方法
多属性排序: 把需要排序的属性拿出来作为一个 tuple,主要的放前面,次要的放后面. 假如某对象有n个属性,那么先按某规则对属性a进行排序,在属性a相等的情况下再按某规则对属性b进行排序,以此类推. 终端打印结果如下: 按照属性name进行排序: 按照ASCII进行排序,本案例中,按照小写字母的顺序进行排序: 按照属性name和age进行排序: 案例中,先斤=进行name进行排序后,再用age进行排序,我们看到的结果是: 主要是按照age进行排序,如果age相同,那么就按照name属性进行排
-
对python实现合并两个排序链表的方法详解
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 1.迭代方法 def Merge(self, pHead1, pHead2): p1, p2 = pHead1, pHead2 if p1 and p2: if p1.val < p2.val: head = p1 p1 = p1.next else: head = p2 p2 = p2.next cur = head elif p1: return p1 else: return p2 while p
-
Python编程对列表中字典元素进行排序的方法详解
本文实例讲述了Python编程对列表中字典元素进行排序的方法.分享给大家供大家参考,具体如下: 内容目录: 1. 问题起源 2. 对列表中的字典元素排序 3. 对json进行比较(忽略列表中字典的顺序) 一.问题起源 json对象a,b a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}' b = '{"ROAD": [{"name": "
-
Python使用sorted排序的方法小结
本文实例讲述了Python使用sorted排序的方法.分享给大家供大家参考,具体如下: # 例1. 按照元素出现的次数来排序 seq = [2,4,3,1,2,2,3] # 按次数排序 seq2 = sorted(seq, key=lambda x:seq.count(x)) print(seq2) # [4, 1, 3, 3, 2, 2, 2] # 改进:第一优先按次数,第二优先按值 seq3 = sorted(seq, key=lambda x:(seq.count(x), x)) prin
随机推荐
- angular.JS实现网页禁用调试、复制和剪切
- Android AsyncTask详解及使用方法
- iOS Touch ID 身份认证
- 使用JavaScript代码实现各种数据控件的反选功能 不要只做拖控件的菜鸟
- jquery异步调用页面后台方法‏(asp.net)
- PHP实现的MongoDB数据库操作类分享
- 基于Linux调试工具strace与gdb的常用命令总结
- PHP中数据库单例模式的实现代码分享
- Android AccessibilityService实现微信抢红包插件
- 客户端脚本中常常出现的一些问题和调试技巧
- Android开机自启动服务的实现方法
- Android实现系统重新启动的功能
- Android注解ButterKnife的基本使用
- 全面解析Bootstrap弹窗的实现方法
- 详解使用grunt完成requirejs的合并压缩和js文件的版本控制
- 一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
- 根据邮箱的域名跳转到相应的登录页面的代码
- javascript 中that的含义示例介绍
- IIS6.0 silverlight网站部署方法
- 深入Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)的详解