首页 > 解决方案 > 从字符串中获取最大数量

问题描述

我有以下“数字”,它们实际上是来自正则表达式的字符串:

nums = ['1', '4', '9', '10']

我想获得最大值,即10. 有没有比进行列表理解更清洁的方法,例如:

>>> max(nums)
'9'
>>> max([int(item) for item in nums])
10

否则,它会给我9.

标签: python

解决方案


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)

推荐阅读