从字符串中获取最大数量

1 python

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

nums = ['1', '4', '9', '10']
Run Code Online (Sandbox Code Playgroud)

我想获得最大值,这将是10.有没有更简洁的方法来做列表理解,例如:

>>> max(nums)
'9'
>>> max([int(item) for item in nums])
10
Run Code Online (Sandbox Code Playgroud)

否则,它会给我9.

Ada*_*ith 11

max有一个关键字参数key,它接受一个callable,在比较它们之前以某种方式转换值.

>>> max(nums, key=int)
Run Code Online (Sandbox Code Playgroud)

这基本上与列表推导相同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)
Run Code Online (Sandbox Code Playgroud)

  • `max(nums,key = int)`与`max(int(item)in nums)'不同,因为前者返回一个字符串,而后者返回一个整数. (2认同)