Python如何无需两次遍历获取函数返回最小值对应的列表元素?
你可以直接使用Python内置min()函数的key参数实现需求,仅需一行代码,且只会遍历一次列表:
result = min(my_list, key=foo)
方案说明
- 时间效率更高:仅单次遍历列表即可得到结果,时间复杂度为O(n)。如果
foo函数本身计算开销较大,相比你原来两次遍历的写法,性能提升会非常明显,同时也不会生成额外的临时列表,内存开销也更低 - 逻辑完全匹配:当存在多个对象的
foo返回值同为最小值时,会返回列表中第一个出现的对象,和你现有实现的行为完全一致 - 符合Python编码规范:是Python社区公认的该场景下的标准Pythonic实现
内容的提问来源于stack exchange,提问作者peaky76
相关产品推荐
相关产品推荐

