操纵变量的一部分,同时保持原始完整

时间:2017-08-30 13:27:36

标签: python list max substitution

在保持原始变量完整的同时操作/使用/删除部分变量的最简洁方法是什么。

让我们说我希望以下列表中的值对应于最高数值

例如:

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

应评估为

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

并且应返回值'10b'

2 个答案:

答案 0 :(得分:6)

max函数接受key参数,该参数用于计算将用于比较的值。 E.g:

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

为那里的lambda填写您自己的转换函数。

答案 1 :(得分: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