Python中列表按指定标准排序实例

概述


本题需要先输入机器的数目和任务的数目。

在接下来的n行中每行分别包含机器的最大执行时间和机器所能执行任务的最大强度。

在接下来的n行中每行分别包含任务执行时间和任务难度。任务收益为z = 200 * time + 3 * hard.

每台机器最多执行一个任务,求机器所能获得最大收益,以及机器所能执行的最大任务数量。

代码


nums = input().split(' ')
machine_nums = (int)(nums[0])
tasks_nums = (int)(nums[1]) machines = []
for i in range(machine_nums):
m_params = input().split(' ')
m_time = (int)(m_params[0])
m_hard = (int)(m_params[1])
machines.append((m_time, m_hard)) machines.sort(key = lambda x: (x[0], x[1])) tasks = []
for i in range(tasks_nums):
t_params = input().split(' ')
t_time = (int)(t_params[0])
t_hard = (int)(t_params[1])
t_income = 200 * t_time + 3 * t_hard
tasks.append((t_time, t_hard, t_income)) tasks.sort(key = lambda x: (-x[2])) max_task = 0
max_income = 0
for task in tasks:
for machine in machines:
if task[0] <= machine[0] and task[1] <= machine[1]:
max_task = max_task + 1
max_income = max_income + task[2]
machines.remove(machine)
break print(max_task, max_income)

Python中排序的灵活使用的更多相关文章

  1. Python中排序方法sort、函数sorted的key参数的作用分析

    从Python2.4开始,list.sort方法 和 sorted方法 都增加了一个 'key' 参数用来在进行比较之前指定每个列表元素上要调用的函数,将函数的返回值作为比较的依据. 那么怎么使用这个 ...

  2. Python中sort、sorted的cmp参数废弃之后使用cmp_to_key实现类似功能

    Python2.1以前的排序比较方法只提供一个cmp比较函数参数,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了cmp参数.相应地从Python ...

  3. Python中的字典排序

    我想将 b = {'a':234,'b':1,'c':2,'e':2387} 分别按照key和value进行排序,该怎样办呢? Python中比较常用的排序有两个函数, 一.定义 (1)一个是List ...

  4. 使用Python在2M内存中排序一百万个32位整数

    译言网 | 使用Python在2M内存中排序一百万个32位整数 使用Python在2M内存中排序一百万个32位整数 译者:小鼠 发表时间:2008-11-13浏览量:6757评论数:2挑错数:0 作者 ...

  5. Python中使用operator模块实现对象的多级排序

    Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...

  6. python中的list按照某一列进行排序的方法

    如题,python中的list着实很好用,我有如下一个list 可以看出list中的每一个元素是由字符串,两个新的list,以及一个float组成,现在想根据这最后一个float对这个list进行排序 ...

  7. Python中的排序方法sort(),sorted(),argsort()等

    python 列表排序方法sort.sorted技巧篇 转自https://www.cnblogs.com/whaben/p/6495702.html,学习参考. Python list内置sort( ...

  8. python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  9. Python中对列表排序实例

    Python中对列表排序实例 发布时间:2015-01-04 09:01:50 投稿:junjie 这篇文章主要介绍了Python中对列表排序实例,本文给出了9个List的排序实例,需要的朋友可以参考 ...

随机推荐

  1. Data Center Manager Leveraging OpenStack

    这是去年的一个基于OpenStack的数据中心管理软件的想法. Abstract OpenStack facilates users to provision and manage cloud ser ...

  2. ubuntu破解密码方法

    摘要: 开机按住任何键(shift)停住grub菜单,进入advanced option for ubuntu,出现的菜单中,光标移动至…(recovery mode)按E进入编辑,找到ro reco ...

  3. LibreOJ #119. 最短路 (堆优化dijkstra)

    题目描述 给一个 n(1≤2500≤n) n(1 \leq 2500 \leq n)n(1≤2500≤n) 个点 m(1≤6200≤m) m(1 \leq 6200 \leq m)m(1≤6200≤m ...

  4. Eclipse被卡死了或者失去响应了后分析根源的一个小技巧

    提升程序员工作效率的工具/技巧推荐系列 推荐一个功能强大的文件搜索工具SearchMyFiles 介绍一个好用的免费流程图和UML绘制软件-Diagram Designer 介绍Windows任务管理 ...

  5. Linux OpenGL 实践篇-10-framebuffer

    在之前的实践中我们都是在当前的窗口中渲染,即使用的缓存都是由glutCreateWindow时创建的缓存,我们可称之为默认缓存.它是唯一一个可以被图形服务器的显示系统识别的帧缓存,我们在屏幕上看到的只 ...

  6. uva12105 Bigger is Better

    更简单的做法:定义状态dp[i][j]表示在已经用了i根火柴的情况下拼出来了剩余部分(是剩余部分,不是已经拼出来了的)为j(需要%m)的最大长度,一个辅助数组p[i][j]表示状态[i][j]的最高位 ...

  7. css 两列 左侧列固定 width: 100px; float: left; 右侧列自适应 margin-left:100px; 注意要用在div上的style

    css 两列 左侧列固定 width: 100px; float: left; 右侧列自适应 margin-left:100px; 注意要用在div上的style .con1{ width: 100p ...

  8. python基础一 day4 字典

    增加:   结果 删:  结果: 结果:   返回值是一个元组形式的键值   改: 结果: 结果:                                      代码: info=inpu ...

  9. Vue之过滤器的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. JAVA中等待所有线程都执行结束(转2)

    场景: package com.java4all.mypoint; import java.util.concurrent.CountDownLatch; public class ThreadTes ...