如何用enumerate获取嵌套列表中第二子元素最小项的索引
解决方法:结合enumerate与min获取索引及目标最小元素
嗨,这个小问题我之前也踩过坑!你用enumerate(nlist)之后,迭代出来的每个元素是(索引, 子列表)这样的元组,之前的key=lambda x: x[1]其实是在直接比较整个子列表,而不是子列表里的第二个元素,这就是为啥没得到预期结果的原因。
正确的写法应该把key函数的指向调整到子列表的第二个元素上,也就是用x[1][1]作为比较依据:
nlist = [ [10, 6], [12,3], [13,1] ] result = min(enumerate(nlist), key=lambda x: x[1][1]) print(result) # 输出:(2, [13, 1])
简单解释下逻辑:
enumerate(nlist)会生成(0, [10,6])、(1, [12,3])、(2, [13,1])这一组元组lambda x: x[1][1]的作用是:取每个元组里的第二个元素(也就是原列表中的子列表),再取这个子列表的第二个值,用这个值作为min函数的排序/比较标准
这样就能精准得到你想要的(索引, 最小元素)格式结果啦~
内容的提问来源于stack exchange,提问作者user3375672
相关产品推荐
相关产品推荐

