如何用Python内置函数min()/max()获取嵌套列表的最值
问题与解决方法
给定嵌套列表:
a = [['a', 20], ['b', 36], ['c', 1], ['d', 8], ['e', 55]]
要求使用Python内置函数min()或max()输出最小值/最大值,结果形式可为['e' , 55]或55。
原代码问题分析
你尝试的代码存在以下问题:
x[1]是整数类型,调用字符串方法isdigit()会触发AttributeError,整数没有该方法- 循环中
q仅保留最后一个遍历到的x[1],最终max(q)是对单个整数求最大值,完全不符合需求
正确实现方法
1. 获取包含对应键的完整元素(如['e', 55])
利用max()/min()的key参数,指定按子列表的第二个元素进行比较:
a = [['a', 20], ['b', 36], ['c', 1], ['d', 8], ['e', 55]] # 取最大值对应的完整元素 max_item = max(a, key=lambda x: x[1]) print(max_item) # 输出: ['e', 55] # 取最小值对应的完整元素 min_item = min(a, key=lambda x: x[1]) print(min_item) # 输出: ['c', 1]
2. 仅获取数值(如55)
直接遍历提取所有子列表的第二个元素,传入max()/min():
a = [['a', 20], ['b', 36], ['c', 1], ['d', 8], ['e', 55]] # 取最大值 max_value = max(x[1] for x in a) print(max_value) # 输出: 55 # 取最小值 min_value = min(x[1] for x in a) print(min_value) # 输出: 1
内容的提问来源于stack exchange,提问作者Zaman
相关产品推荐
相关产品推荐

