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)