2017-08-30 46 views
0

什么是操纵/使用/删除变量的一部分,同时保持原始变量不变的干净的方式。操纵变量的一部分,同时保持原有的完整

可以说,我想对应的最高数值

因此,例如在下面的列表中选择值:

max([1, 2, '3a', '10b']) 

max([1, 2, 3, 10]) 

和价值进行评估'10b'应返回

回答

2
使用 re.search()功能

扩展方法:

import re 

max_item = max([1, 2, '3abc', '10bc'], key=lambda n: int(re.search(r'\d+', str(n)).group(0))) 
print(max_item) 

输出:

10bc 
6

max函数接受一个参数key,该参数用于计算将用于比较的值。例如: -

max([1, 2, '3a', '10b'], key=lambda x: x if isinstance(x, int) else int(x[:-1])) 

填写为lambda有自己的转换功能。

+1

仅假定最后一个字符是字母,还假定不'float's(可能会或可能不正确的假设对于这种特殊情况) –

+2

因此,最后一句;我只能在这里给出的一点信息...... – deceze

+0

这是完美的,可以使用lambda函数来修复它。 – AK47