Python 从字符串中获取最大值

Python 从字符串中获取最大值,python,Python,我有以下“数字”,它们实际上是正则表达式中的字符串: nums = ['1', '4', '9', '10'] 我想得到最大值,即10。有没有比列表理解更简洁的方法,例如: >>> max(nums) '9' >>> max([int(item) for item in nums]) 10 否则,它将给我9 使用map功能: >>> max(map(int, nums)) 使用map功能: >>> max(map(in

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

nums = ['1', '4', '9', '10']
我想得到最大值,即
10
。有没有比列表理解更简洁的方法,例如:

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

否则,它将给我
9

使用
map
功能:

>>> max(map(int, nums))

使用
map
功能:

>>> max(map(int, nums))

max
有一个关键字参数
key
,它接受一个可调用函数,该函数在比较值之前以某种方式转换值

>>> max(nums, key=int)
这基本上与列表理解
max(nums中的item的int(item)
相同,只是需要注意返回的是原始值,而不是转换后的值。这意味着:

>>> a = max(nums, key=int)
>>> b = max(int(item) for item in nums)
>>> repr(a), repr(b)
('10', 10)

max
有一个关键字参数
key
,它接受一个可调用函数,该函数在比较值之前以某种方式转换值

>>> max(nums, key=int)
这基本上与列表理解
max(nums中的item的int(item)
相同,只是需要注意返回的是原始值,而不是转换后的值。这意味着:

>>> a = max(nums, key=int)
>>> b = max(int(item) for item in nums)
>>> repr(a), repr(b)
('10', 10)

这只是调用引擎盖下的
map
?我无法测试atm,但想知道与OP的方法相比,它的性能如何。
max(nums,key=int)
max(int(item)for item in nums)
不同,前者返回一个字符串,而后者返回一个整数。这很容易用
int(max(nums,key=int))
解决。@CJ59我不同意你的看法,抱歉。@roganjosh它不只是在引擎盖下调用
map
,但我无法告诉您性能比较是什么。这只是调用引擎盖下的
map
?我无法测试atm,但想知道与OP的方法相比,它的性能如何。
max(nums,key=int)
max(int(item)for item in nums)
不同,前者返回一个字符串,而后者返回一个整数。这很容易用
int(max(nums,key=int))
解决。@CJ59我不同意你的看法,抱歉。@roganjosh它不只是在引擎盖下调用
map
,但我无法告诉您性能比较是什么。