python - 这段代码如何从一串整数中提取最大值和最小值?
问题描述
这是我在 codewars.com 上找到的解决这个 kata的解决方案。
def high_and_low(numbers):
return " ".join(x(numbers.split(), key=int) for x in (max, min))
我不明白这个解决方案是如何工作的,x 函数看起来像一个排序函数,那么为什么 OP 没有使用排序?另外,元组 (max,min) 上的 for 循环如何提取最大值和最小值?我迷路了。任何与此相关的示例/链接也受到赞赏。提前感谢您的努力。
解决方案
根据max的文档(以及类似的 min),key=int
用于对可迭代对象进行排序,在这种情况下,它是您在执行numbers.split()
. 然后 max 和 min 将从列表中选择最大和最小整数
for x in (max, min)
本质上用函数替换 xmax
并且min
一个稍微简单的方法可能是首先提取整数列表,然后对其应用 max 和 min
def high_and_low(numbers):
nums = list(map(int, numbers.split()))
return min(nums), max(nums)
推荐阅读
- python - PySpark 将名称分配给列值“withcolumn”
- hibernate - 抑制 Hibernate 的 INFO 消息
- c++ - MSVC c++ 编译器是否将 switch 语句转换为查找表以提高效率?
- r - 使用列表在 C++ 中使用 RCPP 以有效的方式返回一堆矩阵
- symfony - 将 url 路径从 Symfony 传递到 React?
- php - Magento模块中的解析错误PHP封装字符串
- javascript - 如何使用 RequireJS 加载 Angular CLI 构建脚本(非 AMD)
- cookies - Nuxt.js 并将 cookie 转发到后端
- java - 解析日期的正确方法
- geolocation - 如何在多个 ionic 4 页面中使用地理定位服务?