我有以下“数字”,它们实际上是正则表达式中的字符串:
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)
