题目描述:
一组学生,每个学生有身高和体重两个特征,现在要对这些学生排序:先按照身高排序,身高相同的按照体重排序

1.用字典来存储 身高和体重的键值对,基于题目描述,身高存在相同的情况,所以体重作为键
不要因为先排序身高,第一次就排序身高,否则第二次排序会将已排序的序列打乱

dic = {80: 180, 70: 180, 60: 190, 90: 190, 56: 180}
ls1 = sorted(dic.items(), key=lambda kv: kv[0])
print(ls1)
ls2 = sorted(ls1, key=lambda kv: kv[1])
print(ls2)

输出为:

[(56, 180), (60, 190), (70, 180), (80, 180), (90, 190)]
[(56, 180), (70, 180), (80, 180), (60, 190), (90, 190)]

2.1存在问题:体重也存在相同的情况,作为键值就不合理,换列表存储,每个元素是(weight,height),先后顺序也可以调换

weight_height = [(66, 180), (66, 190), (70, 160), (70, 180), (60, 170), (80, 170)]
ls1 = sorted(weight_height, key=lambda kv: kv[0])
print(ls1)
ls2 = sorted(ls1, key=lambda kv: kv[1])
print(ls2)

输出为:

[(60, 170), (66, 180), (66, 190), (70, 160), (70, 180), (80, 170)]
[(70, 160), (60, 170), (80, 170), (66, 180), (70, 180), (66, 190)]

3.变更一下,先按照体重排序,体重相同的按照身高排序
直接修改排序的先后顺序即可

weight_height = [(66, 180), (66, 190), (70, 160), (70, 180), (60, 170), (80, 170)]
ls1 = sorted(weight_height, key=lambda kv: kv[1])
print(ls1)
ls2 = sorted(ls1, key=lambda kv: kv[0])
print(ls2)

输出为:

[(70, 160), (60, 170), (80, 170), (66, 180), (70, 180), (66, 190)]
[(60, 170), (66, 180), (66, 190), (70, 160), (70, 180), (80, 170)]

4.题目拓展,学生是有编号的,先按照身高排序,身高相同的按照体重排序,身高和体重相同的按照编号排序
所以,排序的先后顺序就是:编号 体重 身高

weight_height = [(0, 66, 180), (1, 66, 190), (2, 66, 190), (3, 70, 160), (4, 70, 160), (5, 70, 180), (6, 60, 170),(7, 80, 170), (8, 70, 170)]ls1 = sorted(weight_height, key=lambda kv: kv[0])
print(ls1)
ls2 = sorted(ls1, key=lambda kv: kv[1])
print(ls2)
ls3 = sorted(ls2, key=lambda kv: kv[2])
print(ls3)

输出为:

[(0, 66, 180), (1, 66, 190), (2, 66, 190), (3, 70, 160), (4, 70, 160), (5, 70, 180), (6, 60, 170), (7, 80, 170), (8, 70, 170)]
[(6, 60, 170), (0, 66, 180), (1, 66, 190), (2, 66, 190), (3, 70, 160), (4, 70, 160), (5, 70, 180), (8, 70, 170), (7, 80, 170)]
[(3, 70, 160), (4, 70, 160), (6, 60, 170), (8, 70, 170), (7, 80, 170), (0, 66, 180), (5, 70, 180), (1, 66, 190), (2, 66, 190)]

python实现-身高和体重排序相关推荐

  1. 题目二十四:身高、体重排序

    身高从低到高 身高相同体重从轻到重 体重相同维持原来顺序 输入 4 100 100 120 130 40 30 60 50 输出: 2 1 3 4 输入 3 90 110 90 45 60 45 输出 ...

  2. 题目24 身高、体重排序(ok)

    身高从低到高 身高相同体重从轻到重 体重相同维持原来顺序 输入 4 100 100 120 130 40 30 60 50 输出: 2 1 3 4 输入 3 90 110 90 45 60 45 输出 ...

  3. 华为OD机试题:身高体重排序

    题目描述 身高从低到高,身高相同体重从轻到重,体重相同维持原来顺序 示例 输入: 4 100 100 120 130 40 30 60 501 输出: 2 1 3 4 输入: 3 90 110 90 ...

  4. 华为机试:身高体重排序

    [编程题目 | 100分]身高体重排序 [ 100 / 中等 ] 身高体重排序 题目描述: 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重 ...

  5. 华为机试:身高体重排序(仅有题,待求解)

    [编程题目 | 100分]身高体重排序 [ 100 / 中等 ] 题目描述 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对 ...

  6. 0024-华为OD机考:身高--体重排序

    身高体重-排序 题目描述 身高从低到高 身高相同体重从轻到重 体重相同维持原来顺序 样例: 输入 4 100 100 120 130 40 30 60 50输出:2 1 3 4 输入 3 90 110 ...

  7. 笔试题(十五):身高体重排序

    # 身高从低到高,身高相同体重从轻到重,体重相同维持原来顺序. import numpy as npdef sort_hw(n, height, weight):args = np.array(np. ...

  8. 使用python根据身高体重计算BMI指数

    #python(day01) 根据身高.体重计算BMI指数 创建两个变量:一个用于计算身高(单位:米),一个用来记录体重(单位:千克),根据公式"BMI=体重/(身高*身高)",代 ...

  9. 用python写身高体重关系,excel表格输入数据进行查找

    import random #随机数的包 import pandas as pd #Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为 ...

最新文章

  1. 尤金 卡巴斯基:网络安全已陷“黑暗时代”,我们该如何应对?
  2. python爬取小说写入txt_对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力...
  3. 巧用EditPlus包含VS2010网站项目资源
  4. python字母后移5位加密_LabView对字符串进行加密,规则是每个字母后移5位,例如A变为F,b变为g,x变为c,y变为d…...
  5. 如何在C#里实现端口监视呢?
  6. bzoj2208 [Jsoi2010]连通数
  7. 优秀第三方库-图片浏览
  8. 基于京东家电商品知识图谱的自动问答系统(三) -- Java实现问答系统
  9. matlab 傅里叶变换最美,MATLAB傅里叶变换
  10. RFC2544时延测试——信而泰网络测试仪实操
  11. sublime快捷键(mac版)一览
  12. Vue中ref的三种用法
  13. Druid【部署 01】最新版本的(安装+启动服务+打开控制台+本地文件数据载入+数据查询)及(小内存服务器启动JVM参数调整)一次学会使用Druid的完整流程(已完成)
  14. 学习笔记二:关于自激振荡
  15. 静态内部类、静态变量的加载次数-理解静态内部类实现线程安全的单例模式
  16. html基本标记练习钱塘湖春行,实验1HTML基本标记的练习.doc
  17. 设置css阴影和取消css阴影
  18. 求生之路服务器正在强制此文件的一致性,求生之路2和朋友联机错误代码的解决办法...
  19. 爬取B站视频弹幕生成词云
  20. 【Java】Java计算器

热门文章

  1. 苹果计算机删除可怎么恢复,苹果电脑怎么恢复垃圾桶已删除文件-万兴恢复专家...
  2. 电脑知识:常见电脑蓝屏代码识别与处理方法
  3. 存储过程拆分Patents表Inventor字段逗号分隔字符串
  4. centos+tomcate + https协议 SSL证书制作、部署支持iphone、ipa下载安装.ipa程序
  5. 用计算机设计软件,平面设计中计算机设计软件的作用
  6. Android-WIFI笔记整理(二)
  7. 移动前端不得不了解的html5 head 头标签
  8. 如何学分子模拟的软件
  9. SAP所有模块用户出口(User Exits) 三
  10. 战果--继围剿Worm.Viking.dy、专杀工具的较量