从字符串中获取最大数量

时间:2018-11-07 19:44:04

标签: python

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

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

我想获取最大值,即10。有没有比列表理解更干净的方法了,例如:

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

否则,它将给我9

2 个答案:

答案 0 :(得分:12)

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)

答案 1 :(得分:1)

使用AND函数:

shared_ptr