如何从嵌套列表list_a的索引1元素中获取最小值与最大值?
解决嵌套列表子列表指定索引元素的最小/最大值问题
嘿,我来帮你搞定这个问题!咱们先看看你之前写的代码为啥没达到预期:
min_list = min(list_a[0:][1])、max_list = max(list_a[0:][1])
这里的list_a[0:]其实就是原列表的完整切片(和list_a本身没啥区别),后面加[1]是直接取了列表里的第二个子列表(也就是[2,4]),所以你实际上是在求这个单一子列表的最小/最大值,当然不是你想要的结果啦。
正确的实现方法
这里有几种简洁的方式可以实现需求:
方法1:列表推导式+min/max
先提取所有子列表索引1位置的元素,再求最小最大值:
list_a = [[0, 3], [2, 4], [25, 17]] # 提取所有目标元素 target_items = [sublist[1] for sublist in list_a] # 计算最小和最大值 min_val = min(target_items) max_val = max(target_items) print(f"最小值:{min_val}") # 输出 3 print(f"最大值:{max_val}") # 输出 17
方法2:生成器表达式(更省内存)
如果列表很大,不想额外创建一个新列表,可以直接用生成器表达式传入min()和max():
list_a = [[0, 3], [2, 4], [25, 17]] min_val = min(sublist[1] for sublist in list_a) max_val = max(sublist[1] for sublist in list_a)
方法3:map+lambda函数
用map()函数批量提取目标元素,再求最小最大值:
list_a = [[0, 3], [2, 4], [25, 17]] min_val = min(map(lambda x: x[1], list_a)) max_val = max(map(lambda x: x[1], list_a))
这几种方法都能准确遍历每个子列表,提取索引1的元素后计算最小和最大值,完全符合你的需求~
内容的提问来源于stack exchange,提问作者oOinsaneOo
相关产品推荐
相关产品推荐

