为了账号安全,请及时绑定邮箱和手机立即绑定

查找值的索引,该值是Python中的最小值或最大值

查找值的索引,该值是Python中的最小值或最大值

慕后森 2021-03-15 16:13:20
我有一个形式的结构:>>> items[([[0, 1], [2, 20]], 'zz', ''), ([[1, 3], [5, 29], [50, 500]], 'a', 'b')]每个元组中的第一项是范围列表,我想创建一个生成器,该生成器根据起始索引以升序为我提供范围。由于范围列表已经按其起始索引进行了排序,因此此操作很简单:它只是一个排序的合并。我希望以良好的计算效率做到这一点,所以我认为隐式跟踪合并状态的一种好方法是简单地从其起始索引最小的元组列表中弹出前端范围列表。我可以min()用来获取[0, 1]哪个是我想要的第一个,但是如何获取它的索引呢?我有这个:[ min (items[i][0]) for i in range(len(items)) ]这给了我每个列表中的第一项,我可以min()以某种方式进行选择,但是一旦任何一个列表为空,它都会失败,而且不清楚如何在pop()不将其备份到列表中的情况下获取要使用的索引。总结:想要构建可以为我返回的生成器:([0,1], 'zz', '')([1,3], 'a', 'b')([2,20], 'zz', '')([5,29], 'a', 'b')([50,500], 'a', 'b')甚至更有效地,我只需要以下数据:[0, 1, 0, 1, 1](我要放在最前面的元组的索引)
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

from operator import itemgetter

 index, element = max(enumerate(items), key=itemgetter(1))

返回其中最大元素的索引items以及元素本身。


查看完整回答
反对 回复 2021-03-30
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号