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日

悬赏问题

  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教