python - 从字符串中获取最大数量
问题描述
我有以下“数字”,它们实际上是来自正则表达式的字符串:
nums = ['1', '4', '9', '10']
我想获得最大值,即10
. 有没有比进行列表理解更清洁的方法,例如:
>>> max(nums)
'9'
>>> max([int(item) for item in nums])
10
否则,它会给我9
.
解决方案
max
有一个关键字参数key
,它接受一个可调用对象,该可调用对象在比较它们之前以某种方式转换值。
>>> max(nums, key=int)
这与您的列表推导基本相同max(int(item) for item in nums)
,但重要的是要注意返回的是原始值,而不是转换后的值。这意味着:
>>> a = max(nums, key=int)
>>> b = max(int(item) for item in nums)
>>> repr(a), repr(b)
('10', 10)
推荐阅读
- jquery - 我怎样才能在我的日期范围内输出每一天?
- macos - 如何查找和安装与 MacOS 软件包等效的 Ubuntu 18.04 软件包
- c# - Foreach 循环将迭代变量传递给带有和不带有 ref 的方法 - 不明白为什么它不允许带有 ref
- macos-mojave - 2019 年 4 月 7 日之前签署的内核扩展无法在 macOS 10.14.5 上加载
- excel - Excel 自动更改条件格式
- reactjs - 反应嵌套状态更新
- ios - 如何将场景的 SCNNode 添加到其他 SCNScene
- xml - 如何在解析 RSS Feed 时修复“GetChildText(字符串元素名称,字符串命名空间)”?
- vba - 传递包含空格或连字符的 SQL 参数
- html - 这