m0_68372504 2022-04-07 21:13 采纳率: 50%
浏览 20
已结题

python列表排序,太过冗余,有没有更好的算法?

要求:不得使用第三方模块
内容:
xd=[[01,王星,16,男],[02,李冰,22,男],[03,王娜,18,女],[04,李金,23,男],[05,李安娜,27,女]]

问题:
1.按照xd[i][2],年龄从大到小排序
2.按照xd[i][2],年龄从大到小排序,但女生排在最前面

思路:
问题1
设置一个xd_regbox[]
将年龄存放在xd_regbox[]里

以下,从0循环至len(xd)
xd_regbox[],max方法找到最大值
index方法获取这个最大值的xd_regbox[]索引号
再设置一个new_xd[]
将xd[获取的索引号]的内容,使用append添加到new_xd[]内
pop方法删除xd[获取的索引号]
pop方法删除xd_regbox[获取的索引号]

存在问题:
太过冗余,有没有更好的算法?

  • 写回答

1条回答 默认 最新

  • 对象被抛出 2022-04-07 21:25
    关注

    sorted(xd, key=lambda item: item[2])

    第二问, 用1表示男, 0表示女, 先年龄排序, 再性别排序
    sorted(xd, key=lambda item: item[2])
    sorted(xd, key=lambda item: item[3])

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月15日
  • 已采纳回答 4月7日
  • 创建了问题 4月7日

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败